2016-09-26 128 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) 
})