2017-05-20 3 views
0

Ich versuche, diese Datenbank abfragen:Firebase Query-Datenbank gibt null zurück, für Benutzername

enter image description here

ich diese Zeile Code verwenden:

databaseReference.child("users").queryOrdered(byChild: "username").queryEqual(toValue: "billsmith").observeSingleEvent(of: .value, with: { (snap) in 
    print(snap) 
}) 

Diese Codezeile gibt null zurück - Bedeutung Es hat "jondoe" nicht als Benutzername im Benutzerknoten gefunden. Wie bekomme ich das zum Laufen?

+1

'byChild:" usernames "' sollte 'byChild sein: "username" 'zur Übereinstimmung mit der Datenbank –

+0

Das war ein Tippfehler - danke für den Fang! –

Antwort

1

Zwei Probleme:

  1. der Typ usernames vs username
  2. Sie versuchen, eine tiefere Eigenschaft abgefragt werden, sondern nur den Namen der Eigenschaft

Dies sollte statt dessen Weg präsentieren arbeiten besser:

databaseReference 
    .queryOrdered(byChild: "userDetails/username") 
    .queryEqual(toValue: "billsmith") 
    .observeSingleEvent(of: .value, with: { (snap) in 
    print(snap) 
    }) 
+0

Ich habe ein paar Tippfehler im Code in meiner Frage gemacht, also habe ich die Antwort bearbeitet, indem ich .child ("Benutzer") hinzugefügt habe, aber das funktioniert, danke! Gibt es einen Platz für mich, um mehr über Abfragen zu erfahren? Ich hatte Probleme, einige der Dokumente beim Abfragen zu finden. –

+0

Wenn die Dokumentation nicht hilfreich genug ist, würde ich empfehlen, Stack Overflow nach ähnlichen Fragen zu durchsuchen. Es muss inzwischen ziemlich viele von ihnen gegeben haben. –