Question or problem in the Swift programming language:
My Firebase looks like this. Bellow Active_Orders it appear childs with different names depending on their UID(user ID).
And this is my code to get the child’s ID no matter what the name is. But it does not seem to work at all. Whats the proper way to get the child ID? Thanks
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)
How to solve the problem:
Solution 1:
It is hard to tell from your question exactly what you are doing, but does this get you the list you need?
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) } } })
I believe this block should iterate over all the children that are inside “Active_Orders” and print out their key value (which seems to be what you are trying to print).
Solution 2:
For Swift 3 and 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) })