我的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)
答案 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)
})