2016-09-26 103 views
5

我的Firebase看起来像这样。波纹管Active_Orders它出现childs具有不同的名称,具体取决于它们的UID(用户ID)。Firebase获取儿童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

给你最小,但suffise JSON树..不是一个片断,但作为文本.. – Dravidian

+0

我想确保我明白了一个问题:在这种情况下,你想要customerUID等于“ZDitJoAnqES6PPO3teK0EDQnGXJ2”,对吗? – Ryan

+0

不,我想打印出“Active_Orders - > Child”的名称/ ID – Victor

回答

11

这是很难从你的问题,你在做什么,告诉,但这并得到你所需要的名单?

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”孩子们,并打印出他们的键值(这似乎是您要打印的内容)。

+0

非常感谢瑞安! – Victor

+0

很高兴能帮到你! – Ryan

1

对于斯威夫特3和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) 
})