2016-06-09 15 views
0

Ich fragte gestern eine Frage, die als ein Duplikat markiert war, und wenn ich die Frage aktualisiert wurde es nicht unmarkiert. Also frage ich nochmal hier (lt. Stackoverflow Empfehlung).Firebase/Swift queryOrder dann stimmen Wert

Ich versuche nach mehreren Werten in Firebase zu sortieren. Ich verstehe, dass das nicht möglich ist, aber ich erhielt ein Beispiel in einer anderen Sprache, die nur halb hilfreich ist, wie man es richtig macht. In jedem Fall habe ich versucht, dem hier angegebenen Beispiel zu folgen Query based on multiple where clauses in firebase.

Dies ist die Struktur meiner Feuerbasis

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

und dies ist der Code, den ich

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

    let themeOfEvent = snapshot.value 

    if themeOfEvent?.value == pickedTheme { 

     print("foo") 

    } 
} 

zur Arbeit zu kommen versuche Könnte jemand bitte einen nützlichen Kommentar schreiben oder zu beantworten, mir zu helfen ? Danke

Antwort

0

konnte ich helfen bekommen

Das funktioniert

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)") 



    } 




} 
Verwandte Themen