2016-06-09 1 views
0

Я вчера задал вопрос, который был помечен как дубликат, и когда я обновил вопрос, он не был отмечен. Поэтому я снова спрашиваю (в соответствии с рекомендацией stackoverflow).Firebase/Swift queryOrder then match value

Я пытаюсь сортировать по нескольким значениям в firebase. Я понимаю, что это невозможно, но мне дали пример на другом языке, который лишь наполовину полезен, как правильно это делать. В любом случае я попытался следовать приведенному здесь примеру Query based on multiple where clauses in firebase.

Это структура моего firebase

room 
    -KJe22sduQMz1DIs_DH6 
     allowedParticipants: 
     14 
    createdBy: 
     "Mr Tester" 
    members: 
     "nmeMYnnSatRch5qKPJKIe7jEOLy2" 
    participating: 
     true 
    status: 
     "seedling" 
    theme: 
     "Cats" 
    totalNumberOfMembers: 
     1 

и это код, который я пытаюсь заставить работать

ref.queryOrderedByChild("status").queryStartingAtValue("active").queryEndingAtValue("active").observeEventType(.Value) { (snapshot: FIRDataSnapshot) in 

    let themeOfEvent = snapshot.value 

    if themeOfEvent?.value == pickedTheme { 

     print("foo") 

    } 
} 

Может кто-нибудь пожалуйста, напишите полезный комментарий или ответить, чтобы помочь мне ? Спасибо

ответ

0

я смог помочь

Это работает

func listOfPossibleCompetitionsFromFirebase(){ 

    let createdRoomRef = firebase.child("room") 
    createdRoomRef.queryOrderedByChild("status").queryStartingAtValue("active").queryEndingAtValue("active").observeEventType(.Value) { (snapshot: FIRDataSnapshot) in 

     var themeCount = 0 

     self.listOfOpenComps.removeAll() 
     if let tmp = snapshot.value as? [String:AnyObject] { 
      let keys = tmp.keys 

      for key in keys { 

       if let roomDetails = (tmp[key] as? [String:AnyObject]) { 

       if let themeOfEvent = roomDetails["theme"] as? String where themeOfEvent == pickedTheme { 
        themeCount += 1 
        self.listOfOpenComps.append(key) 
       } 

       } 
      } 
     } 

     dispatch_async(dispatch_get_main_queue(), { 
      self.tableView.reloadData() 
     }) 

     print("rooms count: \(themeCount)") 



    } 




} 
Смежные вопросы