2016-09-26 4 views
5

Meine Firebase sieht so aus. Geboren erscheint es childs mit verschiedenen Namen in Abhängigkeit von ihrer UID (Benutzer-ID).Firebase bekommen Kind ID swift ios

Und dies ist mein Code des Kindes ID egal zu bekommen, was der Name ist. Aber es scheint überhaupt nicht zu funktionieren. Was ist der richtige Weg, um die child ID zu bekommen? Dank

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

Geben Sie Ihren minimal, aber suffise Baum JSON .. kein Snippet, sondern als Text .. – Dravidian

+0

Ich mag sicherstellen, dass ich die Frage verstehen: In diesem Fall Sie will, dass customerUID gleich "ZDitJoAnqES6PPO3teK0EDQnGXJ2" ist, richtig? – Ryan

+0

Nein, ich möchte den Namen/die ID von "Active_Orders -> Child" ausdrucken – Victor

Antwort

11

Es ist schwer, aus Ihrer Frage, genau zu sagen, was Sie tun, aber Sie die Liste, die Sie brauchen nicht zu bekommen?

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) 
     } 
    } 
}) 

Ich glaube, dieser Block über alle Kinder durchlaufen sollte, die in „Active_Orders“ sind und deren Schlüsselwert ausdrucken (was zu sein scheint, was Sie versuchen, drucken).

+0

Vielen Dank Ryan! – Victor

+0

Ich bin froh, dass ich helfen konnte! – Ryan

1

Für Swift 3 und 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) 
})