2017-01-30 3 views
2

Ich versuche, Daten von Firebase-Datenbank abzurufen, aber wenn ich den Code ausführen es nichts angezeigt werden, obwohl keine FehlerLesen von Daten von Feuerbasis schnellen

gezeigt bekam ich dieses Stück Code aus Firebase Handbuch, nebenbei bemerkt ich bin mir ziemlich sicher, dass der Pfad

let ref = FIRDatabase.database().reference() 

ref.child("users").child("user").child(username).observeSingleEvent(of: .value, with: { (snapshot) in 
     // Get user value 
     let value = snapshot.value as? NSDictionary 
     let score = value?["score"] as? String ?? "" 
     print(score) 

     // ... 
    }) { (error) in 
      print(error.localizedDescription) 
} 

JSON

{ 
    "users" : { 
    "user" : { 
     "e1410kokeZS8xv81J1RzhN4V2852" : { 
     "email" : "[email protected]", 
     "score" : 0, 
     "username" : "Afnan" 
     }, 
     "jPx8XJ3Q9AazDM7qIOhz02PBfh22" : { 
     "email" : "[email protected]", 
     "score" : 13, 
     "username" : "ghhh" 
     } 
    } 
    } 
} 
+0

Können Sie zeigen Sie Ihre Firebase Struktur? Erwarten Sie auch einen bestimmten Benutzernamen? –

+0

Ich habe meine Frage für die JSON-Struktur bearbeitet. Ja, ich möchte eine Bewertung für einen bestimmten Benutzer abrufen, Benutzername ist eine Variable, die die ID dieses Benutzers –

Antwort

4

Sie hören für das .value Ereignis richtig ist, aber Ihr Block mit einem einzigen Artikel befaßt zu einer Zeit also verwenden Sie .childAdded Ereignis dafür.

let ref = FIRDatabase.database().reference().child("users").child("user").child(username) 

ref.observeSingleEvent(of: .childAdded, with: { (snapshot) in 
    if let userDict = snapshot.value as? [String:Any] { 
      //Do not cast print it directly may be score is Int not string 
      print(userDict["score"]) 
    } 
} 

Hinweis: In Swift verwenden nativen Dictionary statt NSDictionary

+0

immer noch nichts anzeigen, habe ich dies in der Konsole: [Firebase/Datenbank] [I-RDB03428] Verwenden eines nicht näher angegebenen Index . Erwägen Sie ".indexOn": "username" bei/users/user zu Ihren Sicherheitsregeln für bessere Leistung –

+0

es ist eine zufällig generierte ID, Entschuldigung für diese verwirrende Variable –

+0

Sorry, aber das hat nicht funktioniert –