Ich versuche zu überprüfen, ob der Benutzername, den der Benutzer eingegeben hat, genommen wurde. Der Code überprüft derzeit, ob die E-Mail verwendet wird, und erstellt den Benutzer, falls dieser nicht vorhanden ist. Wie kann ich dies dazu bringen, die Datenbank zu lesen, um zu sehen, ob der Benutzername bereits vergeben ist?Überprüfen Sie die Firebase-Datenbank, wenn der Benutzername bereits verwendet wird
FIRAuth.auth()?.createUser(withEmail: email!, password: password!) { (user, error) in
if error?._code == (FIRAuthErrorCode.errorCodeInvalidEmail.rawValue)
{
var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()
ref.child("Users").observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
if snapshot.hasChild(name!){
ref.child("users").child((user?.uid)!).setValue(["username": name])
print("true rooms exist")
} else {
self.displayMyAlertMessage(userMessage: "Username already in use. Please choose another.")
print("false room doesn't exist")
}
})
} else {
self.displayMyAlertMessage(userMessage: "Email already in use. Please see the login page.")
return
}
}
hmm ist das nicht "so einfach wie" das Schreiben Ihres Datenbank-Backends? Sie beziehen sich auf die "Datenbank", welche? Haben Sie einen Code für einen permanenten Speicher? – Yohst
Ich benutze Firebase, also ist die Datenbank schon da. Der Code für den Speicher ist die Ref.child-Art des Codes. – AlexGarlock
Dies wurde "ein paar Mal" vorher gefragt. Siehe [diese Antworten] (http://stackoverflow.com/search?q=%5Bfirebase-database%5D%5Bios%5D+unique+username) oder die [ursprüngliche Antwort von Kato] (http://stackoverflow.com/ Fragen/25294478/how-do-you-verhindern-duplicate-user-properties-in-firebase (für JavaScript, aber die Logik ist für alle Plattformen die gleiche). –