Ich versuche, Benutzername Eindeutigkeit während der Registrierung Benutzer zu überprüfen. Ich weiß, dass es Tonnen von Fragen darüber gibt und ich ging durch alle von ihnen aber mein Problem ist, dass es nichts tut, es druckt nicht, dass der Benutzername existiert und es sogar nicht mit dem Benutzernamen registriert.Firebase Benutzername Eindeutigkeit in Swift
Was mache ich falsch? Ich kann keine Antwort finden, das Einzige, was falsch sein könnte, ist das, wenn ich niste.
Dies ist die Struktur:
AppName:
users
1v2mRJTvrBQ7dMQohUU3rnn7ypI3: //UID
username: John
Und das ist der Code:
func registerUser(){
guard let username = usernameField.text, let email = emailField.text, let password = passwordField.text else{
print("Successfully registered")
return
}
if connectedToNetwork() == true{
if passwordField.text == confirmPasswordField.text{
let usersRef = FIRDatabase.database().reference().child("users")
usersRef.queryOrdered(byChild: "username").queryEqual(toValue: "\(username)")
.observeSingleEvent(of: FIRDataEventType.value, with: { (snapshot) in
if snapshot.value is NSNull{
AuthProvider.Instance.register(withEmail: email, password: password, username: username, loginHandler: { (errMessage) in
if errMessage != nil{
}else{
let user = FIRAuth.auth()?.currentUser
guard let uid = user?.uid else{
return
}
user?.sendEmailVerification() { error in
if let error = error {
print(error.localizedDescription)
} else {
print("Email has been sent to you!")
}
}
//User logged in and redirect
}
})
}else{
print("Username already exists")// It doesn't execute this
}
})
}else{
Util.errorAlert(message: "Passwords do not match!")
}
}else{
Util.errorAlert(message: "The internet connection appears to be offline.")
}
}
ich verschiedene Sicherheitsregeln auch versucht, aber diese sollten keinen Unterschied machen, aber diejenigen, die ich verwendet:
{
"rules": {
".read": "auth != null",
".write": "auth != null",
"Snuses": {
".indexOn": "Brand",
"$username": {
".validate": "!root.child(users').hasChild($username)"
}
}
}
}
Was mache ich falsch?
Scheint in Ordnung. Was ist das Problem? Welchen Fehler bekommst du? – GJZ
Nichts, kein Fehler, nur nichts. –
Haben Sie alle öffnenden und schließenden Klammern überprüft? Vielleicht wird ein Teil des Codes nicht ausgeführt. – GJZ