質問--->Firebase、スウィフト:のみ `autoID`ノードの特定のキー
キー
autoID
あるノードを取得する方法はあり、マイトを持っているの取得には特定のキーが含まれています。下のJSON構造のように、私は子ノードがpowers
の中にあります。autoID
、はすべてではありません。powers
のキーがあるノードだけを取り出したいのですが、value
が対応しているかも知れません。以下の2つのアプローチでは、バンド幅が狭くなります?
私の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"
私は--->
がAUTOID "のチェック、その後全体
node12
とを取得する試みがありますどのような特にkey
を持っています。私はFirebaseフォーラムに投稿されたやや似Qを見つけましたが、 - :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 } }) })
注 - : "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{
//
}
})
私の他の代替ソリューションがある:例えばのために力を言うことができます - https://groups.google.com/forum/#!topic/firebase-talk/ZDHKwxRMiKQ