Behandeln Sie Authentifizierungsfehler auf Firebase-Apple-Plattformen

Wenn der Abschlussrückruf für Authentifizierungsmethoden ein NSError Argument empfängt, das nicht Null ist, ist ein Fehler aufgetreten. Um zur entsprechenden Fehlerbehandlungslogik in Ihrem Produktionscode zu gelangen, vergleichen Sie den Fehlercode mit den unten aufgeführten häufigen Fehlern und methodenspezifischen Fehlern.

Einige Fehler können durch bestimmte Benutzeraktionen behoben werden. Beispielsweise kann FIRAuthErrorCodeUserTokenExpired durch erneutes Anmelden des Benutzers und FIRAuthErrorCodeWrongPassword durch die Aufforderung an den Benutzer behoben werden, das richtige Kennwort einzugeben.

Außer im Fall von FIRAuthErrorCodeNetworkError oder FIRAuthErrorCodeTooManyRequests ist die Wiederholung eines fehlgeschlagenen Vorgangs mit denselben Argumenten nie erfolgreich. Gehen Sie nicht davon aus, ob der Vorgang auf der Serverseite wirksam geworden ist oder nicht.

Überprüfen Sie beim Untersuchen oder Protokollieren von Fehlern das userInfo Wörterbuch. FIRAuthErrorNameKey enthält eine plattformübergreifende Fehlernamenzeichenfolge, die zur Identifizierung des Fehlers verwendet werden kann. NSLocalizedDescriptionKey enthält eine Beschreibung des Fehlers. Diese Beschreibung richtet sich an den Entwickler, nicht an den Benutzer. NSUnderlyingErrorKey enthält den zugrunde liegenden Fehler, der den betreffenden Fehler verursacht hat, sofern ein zugrunde liegender Fehler vorliegt.

Zusätzlich zu den oben aufgeführten Hauptfeldern kann das userInfo Wörterbuch weitere Felder enthalten, die für die Fehlerdiagnose hilfreich sein können.

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. Beispielsweise 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 aufrufenden Gerät an die Firebase-Authentifizierungsserver gestellt wurden. Versuchen Sie es nach einiger Zeit noch einmal.
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. Gehen Sie zur Google API-Konsole und überprüfen Sie auf der Registerkarte „Anmeldeinformationen“, ob für den von Ihnen verwendeten API-Schlüssel die Bundle-ID Ihrer Anwendung auf der Whitelist steht.
FIRAuthErrorCodeKeychainError Zeigt an, dass beim Zugriff auf den Schlüsselbund ein Fehler aufgetreten ist. Die Felder NSLocalizedFailureReasonErrorKey und NSUnderlyingErrorKey im NSError.userInfo Wörterbuch enthalten weitere Informationen zum aufgetretenen Fehler.
FIRAuthErrorCodeInternalError Zeigt an, dass ein interner Fehler aufgetreten ist. Bitte melden Sie den Fehler mit dem gesamten NSError Objekt.

Methodenspezifische Fehlercodes

FIRAuth

fetchProvidersForEmail:completion:

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

signInWithEmail:password:completion:

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

signInWithCredential:completion:

Code Bedeutung
FIRAuthErrorCodeInvalidCredential Zeigt an, dass die angegebenen Anmeldeinformationen ungültig sind. Dies kann passieren, wenn es abgelaufen ist oder fehlerhaft ist.
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse fehlerhaft ist, wenn die Anmeldeinformationen vom Typ EmailPasswordAuthCredential sind.
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass Konten mit dem durch die Anmeldeinformationen dargestellten Identitätsanbieter nicht aktiviert sind. Aktivieren Sie sie im Abschnitt „Auth“ der Firebase-Konsole .
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die durch die Anmeldeinformationen bestätigte E-Mail (z. B. die E-Mail in einem Facebook-Zugriffstoken) bereits von einem vorhandenen Konto verwendet wird, das mit dieser Anmeldemethode nicht authentifiziert werden kann. Rufen Sie fetchProvidersForEmail für die E-Mail-Adresse dieses Benutzers auf und fordern Sie ihn dann auf, sich bei einem der zurückgegebenen Anmeldeanbieter anzumelden. Dieser Fehler wird nur ausgegeben, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ in der Firebase-Konsole unter „Authentifizierungseinstellungen“ aktiviert ist.
FIRAuthErrorCodeUserDisabled Zeigt an, dass das Konto des Benutzers deaktiviert ist.
FIRAuthErrorCodeWrongPassword Zeigt an, dass der Benutzer versucht hat, sich mit einem falschen Passwort anzumelden, wenn die Anmeldeinformationen vom Typ EmailPasswordAuthCredential sind.

signInAnonymouslyWithCompletion:

Code Bedeutung
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass anonyme Konten nicht aktiviert sind. Aktivieren Sie sie im Abschnitt „Auth“ der Firebase-Konsole .

signInWithCustomToken:completion:

Code Bedeutung
FIRAuthErrorCodeInvalidCustomToken Zeigt einen Validierungsfehler beim benutzerdefinierten Token an.
FIRAuthErrorCodeCustomTokenMismatch Zeigt an, dass das Dienstkonto und der API-Schlüssel zu unterschiedlichen Projekten gehören.

createUserWithEmail:password:completion:

Code Bedeutung
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse fehlerhaft ist.
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die E-Mail-Adresse, die für den Anmeldeversuch verwendet wurde, bereits vorhanden ist. Rufen Sie fetchProvidersForEmail auf, um zu überprüfen, welche Anmeldemechanismen dieser Benutzer verwendet hat, und fordern Sie den Benutzer auf, sich mit einem dieser Anmeldemechanismen anzumelden.
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass E-Mail- und Passwortkonten nicht aktiviert sind. Aktivieren Sie sie im Abschnitt „Authentifizierung“ der Firebase-Konsole .
FIRAuthErrorCodeWeakPassword Zeigt einen Versuch an, ein Passwort festzulegen, das als zu schwach erachtet wird. Das Feld NSLocalizedFailureReasonErrorKey “ im Wörterbuchobjekt NSError.userInfo “ enthält ausführlichere Erläuterungen, die dem Benutzer angezeigt werden können.

Abmelden:

Code Bedeutung
FIRAuthErrorCodeKeychainError Beim Zugriff auf den Schlüsselbund ist ein Fehler aufgetreten. Die Felder NSLocalizedFailureReasonErrorKey und NSUnderlyingErrorKey im NSError.userInfo Wörterbuch enthalten weitere Informationen zum aufgetretenen Fehler.

FIRUser

Häufige Fehler bei FIRUser-Vorgängen

Code Bedeutung
FIRAuthErrorCodeInvalidUserToken Zeigt 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 im Benutzerbereich der Firebase-Konsole erneut aktiviert wird.

reauthenticateWithCredential:completion:

Code Bedeutung
FIRAuthErrorCodeInvalidCredential Zeigt an, dass die angegebenen Anmeldeinformationen ungültig sind. Dies kann passieren, wenn es abgelaufen ist oder fehlerhaft ist.
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse fehlerhaft ist, wenn die Anmeldeinformationen vom Typ EmailPasswordAuthCredential sind.
FIRAuthErrorCodeWrongPassword Zeigt an, dass der Benutzer versucht hat, sich mit einem falschen Kennwort erneut zu authentifizieren, wenn die Anmeldeinformationen vom Typ EmailPasswordAuthCredential sind.
FIRAuthErrorCodeUserMismatch Zeigt an, dass versucht wurde, sich erneut bei einem Benutzer zu authentifizieren, der nicht der aktuelle Benutzer ist.
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass Konten mit dem durch die Anmeldeinformationen dargestellten Identitätsanbieter nicht aktiviert sind. Aktivieren Sie sie im Abschnitt „Auth“ der Firebase-Konsole .
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die durch die Anmeldeinformationen bestätigte E-Mail (z. B. die E-Mail in einem Facebook-Zugriffstoken) bereits von einem vorhandenen Konto verwendet wird, das mit dieser Anmeldemethode nicht erneut authentifiziert werden kann. Rufen Sie fetchProvidersForEmail für die E-Mail-Adresse dieses Benutzers auf und fordern Sie ihn dann auf, sich bei einem der zurückgegebenen Anmeldeanbieter anzumelden. Dieser Fehler wird nur ausgegeben, wenn die Einstellung „Ein Konto pro E-Mail-Adresse“ in der Firebase-Konsole unter „Authentifizierungseinstellungen“ aktiviert ist.
FIRAuthErrorCodeUserDisabled Zeigt an, dass das Konto des Benutzers deaktiviert ist.

updateEmail:Fertigstellung:

Code Bedeutung
FIRAuthErrorCodeEmailAlreadyInUse Zeigt an, dass die E-Mail bereits von einem anderen Konto verwendet wird.
FIRAuthErrorCodeInvalidEmail Zeigt an, dass die E-Mail-Adresse fehlerhaft ist.
FIRAuthErrorCodeRequiresRecentLogin Das Aktualisieren der E-Mail-Adresse eines Benutzers ist ein sicherheitsrelevanter Vorgang, der eine aktuelle Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht in letzter Zeit angemeldet hat. Um das Problem zu lösen, authentifizieren Sie den Benutzer erneut, indem Sie reauthenticateWithCredential:completion: für FIRUser aufrufen.

updatePassword:Vervollständigung:

Code Bedeutung
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass der Administrator die Anmeldung beim angegebenen Identitätsanbieter deaktiviert hat.
FIRAuthErrorCodeRequiresRecentLogin Das Aktualisieren des Passworts eines Benutzers ist ein sicherheitsrelevanter Vorgang, der eine aktuelle Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht in letzter Zeit angemeldet hat. Um das Problem zu lösen, authentifizieren Sie den Benutzer erneut, indem Sie reauthenticateWithCredential:completion: für FIRUser aufrufen.
FIRAuthErrorCodeWeakPassword Zeigt einen Versuch an, ein Passwort festzulegen, das als zu schwach erachtet wird. Das Feld NSLocalizedFailureReasonErrorKey “ im Wörterbuchobjekt NSError.userInfo “ enthält ausführlichere Erläuterungen, die dem Benutzer angezeigt werden können.

linkWithCredential:completion:

Code Bedeutung
FIRAuthErrorCodeProviderAlreadyLinked Zeigt einen Versuch an, einen Anbieter eines Typs zu verknüpfen, der bereits mit diesem Konto verknüpft ist.
FIRAuthErrorCodeCredentialAlreadyInUse Zeigt einen Versuch an, eine Verknüpfung mit Anmeldeinformationen herzustellen, die bereits mit einem anderen Firebase-Konto verknüpft waren.
FIRAuthErrorCodeOperationNotAllowed Zeigt an, dass Konten mit dem durch die Anmeldeinformationen dargestellten Identitätsanbieter nicht aktiviert sind. Aktivieren Sie sie im Abschnitt „Auth“ der Firebase-Konsole .

Diese Methode gibt möglicherweise auch Fehlercodes zurück, die mit updateEmail:completion: und updatePassword:completion: für FIRUser verknüpft sind.

unlinkFromProvider:completion:

Code Bedeutung
FIRAuthErrorCodeNoSuchProvider Zeigt einen Versuch an, die Verknüpfung mit einem Anbieter aufzuheben, der nicht mit dem Konto verknüpft ist.
FIRAuthErrorCodeRequiresRecentLogin Das Aktualisieren von E-Mails ist ein sicherheitsrelevanter Vorgang, der eine aktuelle Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht in letzter Zeit angemeldet hat. Um das Problem zu lösen, authentifizieren Sie den Benutzer erneut, indem Sie reauthenticateWithCredential:completion: für FIRUser aufrufen.

sendEmailVerificationWithCompletion:

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

deleteWithCompletion:

Code Bedeutung
FIRAuthErrorCodeRequiresRecentLogin Das Löschen eines Benutzerkontos ist ein sicherheitsrelevanter Vorgang, der eine aktuelle Anmeldung des Benutzers erfordert. Dieser Fehler weist darauf hin, dass sich der Benutzer nicht in letzter Zeit angemeldet hat. Um das Problem zu lösen, authentifizieren Sie den Benutzer erneut, indem Sie reauthenticateWithCredential:completion: für FIRUser aufrufen.