Behandeln von Firebase iOS-Authentifizierungsfehlern

Wenn der Abschluß Rückruf bei Authentifizierungsmethoden erhält ein NSError Argument , das nicht gleich Null ist, ist ein Fehler aufgetreten ist . Um in Ihrem Produktionscode an die entsprechende Fehlerbehandlungslogik zu senden, überprüfen Sie den Fehlercode auf die unten aufgeführten allgemeinen Fehler und methodenspezifischen Fehler.

Einige Fehler können durch bestimmte Benutzeraktionen gelöst werden, beispielsweise FIRAuthErrorCodeUserTokenExpired kann wieder durch die Unterzeichnung des Benutzers gelöst werden, und FIRAuthErrorCodeWrongPassword durch den Benutzer auffordert , das richtige Passwort zu liefern.

Außer im Falle von FIRAuthErrorCodeNetworkError oder FIRAuthErrorCodeTooManyRequests , Retrying eine fehlerhafte Operation mit den gleichen Argumenten wird nie gelingen. Gehen Sie nicht davon aus, ob der Vorgang serverseitig wirksam wurde oder nicht.

Bei der Untersuchung oder Fehler Protokollierung, überprüfen Sie die userInfo Wörterbuch. FIRAuthErrorNameKey enthält einen plattformübergreifende Fehlernamen Zeichenfolge, die zur Identifizierung des Fehlers verwendet werden kann. NSLocalizedDescriptionKey enthält eine Beschreibung des Fehlers. Diese Beschreibung ist für den Entwickler gedacht, nicht für den Benutzer. NSUnderlyingErrorKey enthält den zugrunde liegenden Fehler, der den Fehler verursacht in Frage, wenn eine darunter liegende Fehler vorliegt.

Zusätzlich zu den wichtigsten Feldern oben aufgeführt ist , kann es andere Felder im userInfo Wörterbuch , dass Sie nützlich sein können , wenn Fehler zu diagnostizieren.

Fehlercodes, die allen API-Methoden gemeinsam sind

Code Bedeutung
FIRAuthErrorCodeNetworkError Zeigt an, dass während des Vorgangs ein Netzwerkfehler aufgetreten ist.
FIRAuthErrorCodeUserNotFound Zeigt an, dass das Benutzerkonto nicht gefunden wurde. Dies kann passieren, wenn das Benutzerkonto gelöscht wurde.
FIRAuthErrorCodeUserTokenExpired Zeigt an, dass das Token des aktuellen Benutzers abgelaufen ist, z. B. hat der Benutzer möglicherweise das Kontokennwort auf einem anderen Gerät geändert. Sie müssen den Benutzer auffordern, sich auf diesem Gerät erneut anzumelden.
FIRAuthErrorCodeTooManyRequests Zeigt an, dass die Anfrage blockiert wurde, nachdem eine ungewöhnliche Anzahl von Anfragen vom Anrufergerät an die Firebase Authentication-Server gestellt wurde. Versuchen Sie es nach einiger Zeit erneut.
FIRAuthErrorCodeInvalidAPIKey Zeigt an, dass die Anwendung mit einem ungültigen API-Schlüssel konfiguriert wurde.
FIRAuthErrorCodeAppNotAuthorized Zeigt an, dass die App nicht berechtigt ist, die Firebase-Authentifizierung mit dem bereitgestellten API-Schlüssel zu verwenden. Rufen Sie die Google API Console auf und überprüfen Sie auf der Registerkarte "Anmeldeinformationen", ob die Bundle-ID Ihrer Anwendung für den von Ihnen verwendeten API-Schlüssel auf der Whitelist steht.
FIRAuthErrorCodeKeychainError Zeigt an, dass beim Zugriff auf den Schlüsselbund ein Fehler aufgetreten ist. Die NSLocalizedFailureReasonErrorKey und NSUnderlyingErrorKey Felder im NSError.userInfo Wörterbuch Mehr Informationen zu den aufgetretenen Fehler enthalten.
FIRAuthErrorCodeInternalError Zeigt an, dass ein interner Fehler aufgetreten ist. Bitte melden Sie NSError den Fehler mit dem gesamten NSError Objekt.

Methodenspezifische Fehlercodes

FIRAuth

fetchProvidersForEmail:Abschluss:

Code Bedeutung
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse falsch formatiert ist.

signInWithEmail:Passwort:Vervollständigung:

Code Bedeutung
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass E-Mail- und Kennwortkonten nicht aktiviert sind. Aktivieren Sie im Auth Abschnitt der Firebase Konsole .
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse falsch formatiert ist.
FIRAuthErrorCodeUserDisabled Zeigt an, dass das Konto des Benutzers deaktiviert ist.
FIRAuthErrorCodeWrongPassword Zeigt an, dass der Benutzer versucht hat, sich mit einem falschen Kennwort anzumelden.

signInWithCredential:Abschluss:

Code Bedeutung
FIRAuthErrorCodeInvalidCredential Gibt an, dass die angegebenen Anmeldeinformationen ungültig sind. Dies kann passieren, wenn es abgelaufen oder fehlerhaft ist.
FIRAuthErrorCodeInvalidEmail Zeigt die E - Mail - Adresse ist falsch formatiert, wenn Berechtigungsnachweis von der Art ist , EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed Gibt an, dass Konten mit dem Identitätsanbieter, der durch die Anmeldeinformationen repräsentiert wird, nicht aktiviert sind. Aktivieren Sie im Auth Abschnitt der Firebase Konsole .
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die von den Anmeldeinformationen bestätigte E-Mail (z. B. die E-Mail in einem Facebook-Zugriffstoken) bereits von einem bestehenden Konto verwendet wird, das mit dieser Anmeldemethode nicht authentifiziert werden kann. Rufen Sie fetchProvidersForEmail für diesen E - Mail des Benutzers und dann prompt sie mit einem der Anmelde-Anbieter zurückmelden. Dieser Fehler wird nur ausgelöst werden , wenn das „One - Konto per E - Mail - Adresse“ Einstellung in der aktiviert ist Firebase Konsole unter Authentifizierungseinstellungen.
FIRAuthErrorCodeUserDisabled Zeigt an, dass das Konto des Benutzers deaktiviert ist.
FIRAuthErrorCodeWrongPassword Gibt der Benutzer versucht , Zeichen in mit einem falschen Passwort, wenn Berechtigungsnachweis der Art ist EmailPasswordAuthCredential .

signInAnonymousWithCompletion:

Code Bedeutung
FIRAuthErrorCodeOperationNotAllowed Gibt an, dass anonyme Konten nicht aktiviert sind. Aktivieren Sie im Auth Abschnitt der Firebase Konsole .

signInWithCustomToken:Abschluss:

Code Bedeutung
FIRAuthErrorCodeInvalidCustomToken Gibt einen Validierungsfehler mit dem benutzerdefinierten Token an.
FIRAuthErrorCodeCustomTokenMismatch Gibt an, dass das Dienstkonto und der API-Schlüssel zu verschiedenen Projekten gehören.

createUserWithEmail:Passwort:Vervollständigung:

Code Bedeutung
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse falsch formatiert ist.
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die E-Mail-Adresse, die für den Anmeldeversuch verwendet wurde, bereits existiert. Call fetchProvidersForEmail zu überprüfen , die Anmelde-Mechanismen , wie Nutzer verwendet wird , und fordert den Benutzer mit einer von denen anzumelden.
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass E-Mail- und Kennwortkonten nicht aktiviert sind. Aktivieren Sie im Abschnitt Authentifizierung der Firebase Konsole .
FIRAuthErrorCodeWeakPassword Weist auf einen Versuch hin, ein Passwort festzulegen, das als zu schwach gilt. Das NSLocalizedFailureReasonErrorKey Feld im NSError.userInfo Dictionary - Objekt enthält ausführlichere Erklärung, die dem Benutzer angezeigt werden kann.

austragen:

Code Bedeutung
FIRAuthErrorCodeKeychainError Zeigt an, dass beim Zugriff auf den Schlüsselbund ein Fehler aufgetreten ist. Die NSLocalizedFailureReasonErrorKey und NSUnderlyingErrorKey Felder im NSError.userInfo Wörterbuch Mehr Informationen zu den aufgetretenen Fehler enthalten.

FIRUser

Häufige Fehler bei FIRUser-Operationen

Code Bedeutung
FIRAuthErrorCodeInvalidUserToken Gibt an, dass das Aktualisierungstoken des angemeldeten Benutzers, das Sitzungsinformationen enthält, ungültig ist. Sie müssen den Benutzer auffordern, sich auf diesem Gerät erneut anzumelden.
FIRAuthErrorCodeUserDisabled Zeigt an, dass das Konto des Benutzers deaktiviert ist und nicht mehr verwendet werden kann, bis es wieder im Benutzerbereich der Firebase-Konsole aktiviert wird.

reauthenticateWithCredential:Abschluss:

Code Bedeutung
FIRAuthErrorCodeInvalidCredential Gibt an, dass die angegebenen Anmeldeinformationen ungültig sind. Dies kann passieren, wenn es abgelaufen oder fehlerhaft ist.
FIRAuthErrorCodeInvalidEmail Zeigt die E - Mail - Adresse ist falsch formatiert, wenn Berechtigungsnachweis von der Art ist , EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Gibt der Benutzer versucht , eine erneute Authentifizierung mit einem falschen Passwort, wenn Berechtigungsnachweis der Art ist EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Zeigt an, dass versucht wurde, sich mit einem Benutzer, der nicht der aktuelle Benutzer ist, erneut zu authentifizieren.
FIRAuthErrorCodeOperationNotAllowed Gibt an, dass Konten mit dem Identitätsanbieter, der durch die Anmeldeinformationen repräsentiert wird, nicht aktiviert sind. Aktivieren Sie im Auth Abschnitt der Firebase Konsole .
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die von den Anmeldeinformationen bestätigte E-Mail (zB die E-Mail in einem Facebook-Zugriffstoken) bereits von einem bestehenden Konto verwendet wird, das mit dieser Anmeldemethode nicht erneut authentifiziert werden kann. Rufen Sie fetchProvidersForEmail für diesen E - Mail des Benutzers und dann prompt sie mit einem der Anmelde-Anbieter zurückmelden. Dieser Fehler wird nur ausgelöst werden , wenn das „One - Konto per E - Mail - Adresse“ Einstellung in der aktiviert ist Firebase Konsole unter Authentifizierungseinstellungen.
FIRAuthErrorCodeUserDisabled Zeigt an, dass das Konto des Benutzers deaktiviert ist.

updateEmail:Abschluss:

Code Bedeutung
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die E-Mail bereits von einem anderen Konto verwendet wird.
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse falsch formatiert ist.
FIRAuthErrorCodeRequiresRecentLogin Das Aktualisieren der E-Mail eines Benutzers ist ein sicherheitsrelevanter Vorgang, der eine kürzliche Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht vor kurzem genug angemeldet hat. Zu lösen, eine erneute Authentifizierung der Benutzer durch den Aufruf reauthenticateWithCredential:completion: auf FIRUser .

updatePassword:Vervollständigung:

Code Bedeutung
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass der Administrator die Anmeldung mit dem angegebenen Identitätsanbieter deaktiviert hat.
FIRAuthErrorCodeRequiresRecentLogin Das Aktualisieren des Kennworts eines Benutzers ist ein sicherheitsrelevanter Vorgang, der eine kürzliche Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht kürzlich genug angemeldet hat. Zu lösen, eine erneute Authentifizierung der Benutzer durch den Aufruf reauthenticateWithCredential:completion: auf FIRUser .
FIRAuthErrorCodeWeakPassword Weist auf einen Versuch hin, ein Passwort festzulegen, das als zu schwach gilt. Das NSLocalizedFailureReasonErrorKey Feld im NSError.userInfo Dictionary - Objekt enthält ausführlichere Erklärung, die dem Benutzer angezeigt werden kann.

linkWithCredential:Abschluss:

Code Bedeutung
FIRAuthErrorCodeProviderAlreadyLinked Zeigt einen Versuch an, einen Anbieter eines bereits mit diesem Konto verknüpften Typs zu verknüpfen.
FIRAuthErrorCodeCredentialAlreadyInUse Zeigt einen Versuch an, eine Verknüpfung mit Anmeldedaten herzustellen, die bereits mit einem anderen Firebase-Konto verknüpft wurden.
FIRAuthErrorCodeOperationNotAllowed Gibt an, dass Konten mit dem Identitätsanbieter, der durch die Anmeldeinformationen repräsentiert wird, nicht aktiviert sind. Aktivieren Sie im Auth Abschnitt der Firebase Konsole .

Dieses Verfahren kann auch Fehlercodes zurück , die mit updateEmail:completion: und updatePassword:completion: auf FIRUser .

unlinkFromProvider:Vervollständigung:

Code Bedeutung
FIRAuthErrorCodeNoSuchProvider Zeigt einen Versuch an, die Verknüpfung eines Anbieters aufzuheben, der nicht mit dem Konto verknüpft ist.
FIRAuthErrorCodeRequiresRecentLogin Das Aktualisieren von E-Mails ist ein sicherheitsrelevanter Vorgang, der eine kürzliche Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht vor kurzem genug angemeldet hat. Zu lösen, eine erneute Authentifizierung der Benutzer durch den Aufruf reauthenticateWithCredential:completion: auf FIRUser .

sendEmailVerificationWithCompletion:

Code Bedeutung
FIRAuthErrorCodeUserNotFound Zeigt an, dass das Benutzerkonto nicht gefunden wurde.

Mit Abschluss löschen:

Code Bedeutung
FIRAuthErrorCodeRequiresRecentLogin Das Löschen eines Benutzerkontos ist ein sicherheitsrelevanter Vorgang, der eine kürzliche Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht vor kurzem genug angemeldet hat. Zu lösen, eine erneute Authentifizierung der Benutzer durch den Aufruf reauthenticateWithCredential:completion: auf FIRUser .