【问题标题】:Firebase get child ID swift iosFirebase快速获取孩子ID
【发布时间】:2017-02-04 06:38:24
【问题描述】:

我的 Firebase 看起来像这样。波纹管Active_Orders 显示为childs,名称不同,具体取决于他们的UID(用户ID)。

这是我获取孩子 ID 的代码,无论孩子的名字是什么。但它似乎根本不起作用。获取child ID 的正确方法是什么?谢谢

databaseRef.child("Active_Orders").observeEventType(FIRDataEventType.Value, withBlock: {
                    snapshot in
                //Get customerUID
                let customerUID = snapshot.value!.objectForKey("username") as! String
                self.setText("customerUID", value: customerUID)

【问题讨论】:

  • 提供最小但足够的 JSON 树.. 不是 sn-p,而是作为文本..
  • 我想确保我理解了这个问题:在这种情况下,您希望 customerUID 等于“ZDitJoAnqES6PPO3teK0EDQnGXJ2”,对吗?
  • 不,我想打印出“Active_Orders -> Child”的名称/ID
  • 所以您想打印一份所有有效订单的列表?
  • 是的,但我只想知道孩子们的名字。进一步发送。

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

对于 Swift 3 和 Firebase 4

let ref = Database.database().reference()   

ref.child("Active_orders").observe(.value, with: { snapshot in

    if !snapshot.exists() {return} //may want to add better error handling here.

    let info = snapshot.value as! NSDictionary

    print("info keys are:", info.allKeys)
})

【讨论】:

    【解决方案2】:

    很难从您的问题中确切地看出您在做什么,但这是否为您提供了所需的清单?

    databaseRef.child("Active_Orders").observeEventOfType(.Value, withBlock: { (snapshot) in 
        if let result = snapshot.children.allObjects as? [FIRDataSnapshot] {
            for child in result {
                var orderID = child.key as! String
                print(orderID)
            }
        }
    })
    

    我相信这个块应该遍历“Active_Orders”内的所有孩子并打印出他们的键值(这似乎是你想要打印的)。

    【讨论】:

    • 很高兴能帮上忙!
    猜你喜欢
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多