Firebase获得儿童ID swift ios

时间:2016-09-26 19:34:44

标签: ios swift firebase firebase-realtime-database

我的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)

2 个答案:

答案 0 :(得分:14)

很难从你的问题中确切地知道你在做什么,但是这会得到你需要的清单吗?

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"并打印出他们的键值(这似乎是你要打印的内容)。

答案 1 :(得分: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)
})