Ich habe eine App, die nach der Verwendung von Firebase Auth Benutzer die Daten in der Firebase-Datenbank speichern. Vor dem Speichern der Daten möchte ich überprüfen, ob der Benutzername, den der Benutzer gibt, bereits in der Datenbank existiert. Also, wenn es nicht existiert, könnte ich dem Benutzer diesen eindeutigen Benutzernamen geben (so wie jeder Benutzer einen eindeutigen Benutzernamen hat). So habe ich eine textField
, wo der Benutzer seinen Benutzernamen eingeben, und drücken Sie dann auf Weiter. Dann sollte die App prüfen, ob der Benutzername existiert oder nicht und dem Benutzer mitteilen, ob er ihn ändern muss.Überprüfen Sie, ob Benutzer mit Firebase 3.0 + swift
den Code So habe ich vor, wenn der Benutzername zu überprüfen:
let databaseRef = FIRDatabase.database().reference()
databaseRef.child("Users").observeSingleEventOfType(.Value, withBlock: { (snapshot) in
if snapshot.hasChild(self.usernameTextField.text!){
print("user exist")
}else{
print("user doesn't exist")
}
})
jedes Mal, so dass die nächste Taste gedrückt wird, wird dieser Code genannt. Das Problem dabei ist, dass das Ergebnis immer gleich bleibt wie bei der ersten Suche (auch nach der Änderung des textField Wertes). Zum Beispiel, wenn ich Jose suche, und Jose existieren in meiner Datenbank so wird "Benutzer existiert" drucken. Aber wenn ich den textField
zu dem Namen ändere, der nicht existiert, zeigt es noch "Benutzer existiert" an.
Gut zu hören, dass Sie den Fehler gefunden haben. Werfen Sie auch einen Blick auf diese Frage, wenn Sie den Nutzern einen eindeutigen Nutzernamen zuweisen möchten: http://stackoverflow.com/questions/25294478/how-do-you-prevent-duplicate-user-properties-in-firebase –