gpt4 book ai didi

ios - 火力地堡, swift : Retrieving only those `autoID` node's which have a specific key

转载 作者:行者123 更新时间:2023-11-28 12:40:54 25 4
gpt4 key购买 nike

问题--->

  1. 有没有办法检索其键为 autoID 的节点,该节点可能包含特定键。就像在下面的 JSON 结构中一样,我在一些 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"

我尝试了什么--->

  • 检索整个 node12,然后检查哪些 autoId 具有特定的 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

    }
    })

    })

注意:- 我在 Firebase 论坛中发现了一些类似的问题,但似乎没有人回答:- https://groups.google.com/forum/#!topic/firebase-talk/ZDHKwxRMiKQ

最佳答案

如果不关心powers的值,只关心key存在于autoId节点下,只需要.queryEqualToValue("") (这取决于键值对的值是一个字符串,对于数字,而不是 ""只需使用 0 [取决于您的值大于或等于 0])。

let ref = FIRDatabase.database().referenceWithPath("node1/node12")

ref.queryOrderedByChild("powers")
ref.queryEqualToValue("")
ref.observeEventOfType(.Value, withBlock: { snap in

print(snap) // all the autoId nodes that have the powers key
})

关于ios - 火力地堡, swift : Retrieving only those `autoID` node's which have a specific key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39420001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com