Ich bin relativ neu in Swift und Firebase und ich suche nach einer Möglichkeit, die Firebase-Datenbank abzufragen, um einen bestimmten Wert zu finden. Im Zusammenhang mit der App, die ich entwickle, muss sich ein Benutzer bei der Anmeldung einen Benutzernamen wählen, und wir möchten in der Datenbank überprüfen, dass kein anderer Nutzer bereits den gewählten Nutzernamen hat. Meine Datenbank-Struktur sieht wie so:Firebase-Abfrage (in Swift), um einen bestimmten Wert innerhalb aller Benutzer einer App zu finden
Lasst uns sagen, dass ich in der App bin Registrierung und ich würde meinen Benutzernamen wie „Mike“ zu sein. Ich mag, dass der App in allen „username“ Feldern in der Datenbank zu suchen, um zu überprüfen, ob „mike“ ist bereits vergeben, aber mein Code Firebase funktioniert nicht:
let queryRef = FIRDatabase.database().reference().child("users")
queryRef.queryOrdered(byChild: "username")
.queryEqual(toValue: self.username.text)
.observeSingleEvent(of: .value, with: { snapshot in
if snapshot.exists()
{
print(snapshot)
}
})
Alles nach „Schnappschuss“ doesn‘ t sogar ausgeführt (springt über den Befehlssatz). Momentan teste ich gerade, bevor ich die eigentliche Prüfung durchführe, den "Schnappschuss" -Wert zu drucken, aber er wird nie gedruckt.
ich meine DB Regeln so, da die „username“ Schlüssel muss für jedermann zugänglich sein versucht, es zu fragen:
{
"rules": {
"users": {
"$uid": {
"email": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid",
},
"username": {
".read": true,
".write": "$uid === auth.uid",
}
}
}
}
}
Es ist wichtig, hier für mich alles privat zu halten, außer für den „username " Schlüssel. In diesem Beispiel habe ich nur die "E-Mail" und "Benutzername" -Tasten zur Vereinfachung, aber in meiner eigentlichen App habe ich viel mehr (Vorname, Nachname, Geburtsdatum, Telefonnummer, etc.)
Any Hilfe an diesem Punkt wird geschätzt. Vielen Dank