Frage haben --->Firebase, Swift: Suchen nur diejenigen `autoID` des Knotens, die einen bestimmten Schlüssel
Gibt es eine Möglichkeit, einen Knoten, dessen Schlüssel ist ein
autoID
, die Might abrufen enthalten einen bestimmten Schlüssel. Wie in der unteren JSON-Struktur habe ich einen Kind-Knotenpowers
innerhalb einigerautoID
's, nicht alle von ihnen, ich möchte nur diejenigen Knoten abrufen, die Schlüsselpowers
in ihnen nicht wissen, was entsprechendevalue
sein könnte.In der folgenden zwei vorgeschlagenen Ansatz, die man weniger Bandbreite verbrauchen würde?
Mein JSON Baum
node1
-node12
-autoId1
expo: "5122223333"
users:
-MqrvHRBTRcPzrvAOdkklBzeFW7E2
firstName: "Margery"
lastName: "Lady"
-autoId2
powers: "Triple3"
expo: "2123338983"
users:
-LqrsadaDs12BTRcPzrvABzeFW7E2
firstName: "Tyrion"
lastName: "Imph"
-node21
-autoId3
powers: "Triple"
expo: "5123333"
users:
-MqrvHRBTRcPzrvAOdkklBzeFW7E2
firstName: "Cersie"
lastName: "Lady"
-autoId4
powers: "Quad"
expo: "2128983"
users:
-LqrsadaDs12BTRcPzrvABzeFW7E2
firstName: "Sansa"
lastName: "Lady"
Was habe ich versucht, --->
die gesamte
node12
abrufen und dann, welche der AutoID Überprüfung ' s haben eine bestimmtekey
. für zB können Kräfte sagen: "Triple3"let prntRef = FIRDatabase.database().reference().child("node1").child("node12") prntRef.observeSingleEventOfType(.Value, withBlock: {(snap) in if snap.exists(){ for each in snap.value as! [String:AnyObject]{ prntRef.child(each.0 as! String).child("powers").observeSingleEventOfType(.Value, withBlock: {(IMsnap) in if IMsnap.exists(){ //Found The correct node } }) } }else{ // } })
Meine andere alternative Lösung ist: -
FIRDatabase.database().reference().child("node1").child("node12").queryOrderedByChild("powers").observeSingleEventOfType(.Value, withBlock: {(snap) in if let snapDict = snap.value! as? [String : AnyObject]{ print(snapDict.keys.first!) //Retrieving My AutoID .Nut this gives me entire node. } for each in snap.value as! [String:AnyObject]{ print(each.0) //Retrieving My AutoID } }) })
Hinweis: - ich etwas ähnlich Q gefunden in Firebase Forum gepostet, aber niemand scheint darauf zu antworten: - https://groups.google.com/forum/#!topic/firebase-talk/ZDHKwxRMiKQ