Ich versuche, die E-Mail/Passwort-Authentifizierung von einem Benutzer in Swift auf iOS zu lösen. Ich habe gelesen the documentation und geschafft, Facebook-Authentifizierung ohne ein Problem zu verknüpfen und zu lösen. Nach dem erfolgreichen Verknüpfen der E-Mail-/Kennwort-Anmeldeinformationen ist das Objekt providerData
jedoch null. Die providerID
ist „Firebase“ aber wenn ich passieren, dass an den unlink Code der folgende Fehler ausgelöst:Firebase entsperren E-Mail/Passwort Auth von Benutzer auf iOS
Error Domain=FIRAuthErrorDomain Code=17016 "User was not linked to an account with the given provider." UserInfo={NSLocalizedDescription=User was not linked to an account with the given provider., error_name=ERROR_NO_SUCH_PROVIDER}
Der unlink Code Ich verwende ist:
let providerId = (FIRAuth.auth()?.currentUser?.providerID)!
print("Trying to unlink:",providerId) // providerId = "Firebase"
FIRAuth.auth()?.currentUser?.unlinkFromProvider(providerId) { user, error in
if let error = error {
print("Unlink error:", error)
} else {
// Provider unlinked from account successfully
print("Unlinked...user.uid:", user!.uid, "Anonymous?:", user!.anonymous)
}
}
die Dokumentation lesen und haben bekam es funktioniert für Facebook, erwartete ich, dass das Array ProviderData mit etwas nach der E-Mail-Authentifizierung gefüllt wird. Also ist mein Linking Code falsch (es wirft keinen Fehler und scheint gut zu funktionieren)?
Meine Verbindungskode:
let credential = FIREmailPasswordAuthProvider.credentialWithEmail(email, password: password)
FIRAuth.auth()?.currentUser!.linkWithCredential(credential) { (user, error) in
if user != nil && error == nil {
// Success
self.success?(user: user!)
dispatch_async(dispatch_get_main_queue(), {
self.dismissViewControllerAnimated(true, completion: nil)
if type == "new" {
print("New user logged in...")
}
if type == "existing" {
print("Existing user logged in...")
}
})
} else {
print("Login error:",error)
self.showOKAlertWithTitle("Login Error", message: error!.localizedDescription)
}
}
Alle Hinweise, wie ich mein Ansatz ändern wäre toll.