0
问题--->火力地堡,斯威夫特:只获取`autoID`节点的具有特定键
有没有一种方法来检索其关键是
autoID
一个节点,它强权包含一个特定的键。像下面JSON结构,我有内部的一些autoID
的,子节点powers
不是所有的人的,我只想检索这其中有关键powers
这些节点不知道什么相应value
可能。在下面两个建议的方法中哪一个会消耗更少的带宽?
我的JSON树
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"
有什么我试过--->
检索整个
node12
,然后检查其自动识别“的s有一个特定的key
。对于如可以说权力: “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{ // } })
我的其他可替代的解决方案是: -
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 } }) })
注: -我发现张贴在火力地堡论坛几分相似Q,但似乎没有人回答它: - https://groups.google.com/forum/#!topic/firebase-talk/ZDHKwxRMiKQ