Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Gérer les erreurs d'authentification Firebase iOS

Si la fonction de rappel d'achèvement sur les méthodes d' authentification reçoit un NSError argument qui est non nul, une erreur est survenue. Pour envoyer à la logique de gestion des erreurs appropriée dans votre code de production, vérifiez le code d'erreur par rapport aux erreurs courantes et aux erreurs spécifiques à la méthode répertoriées ci-dessous.

Certaines erreurs peuvent être résolus par des actions d'utilisateurs particuliers, par exemple, FIRAuthErrorCodeUserTokenExpired peut être résolu en signant à nouveau l'utilisateur dans et FIRAuthErrorCodeWrongPassword en demandant à l'utilisateur de fournir le bon mot de passe.

Sauf dans le cas de FIRAuthErrorCodeNetworkError ou FIRAuthErrorCodeTooManyRequests , une opération qui a échoué une nouvelle tentative avec les mêmes arguments ne réussirez jamais. Ne faites aucune hypothèse quant à savoir si l'opération a pris effet du côté serveur.

Lors de l' instruction ou la journalisation des erreurs, consultez le userInfo dictionnaire. FIRAuthErrorNameKey contient une chaîne de nom d'erreur multi-plateforme qui peut être utilisé pour identifier l'erreur. NSLocalizedDescriptionKey contient une description de l'erreur. Cette description est destinée au développeur, pas à l'utilisateur. NSUnderlyingErrorKey contient l'erreur sous - jacente qui a causé l'erreur en question, si une erreur sous - jacente est présente.

Outre les principaux domaines énumérés ci - dessus, il peut y avoir d' autres domaines dans le userInfo dictionnaire que vous pouvez trouver utile pour diagnostiquer les erreurs.

Codes d'erreur communs à toutes les méthodes API

Code Sens
FIRAuthErrorCodeNetworkError Indique qu'une erreur réseau s'est produite pendant l'opération.
FIRAuthErrorCodeUserNotFound Indique que le compte utilisateur n'a pas été trouvé. Cela peut arriver si le compte utilisateur a été supprimé.
FIRAuthErrorCodeUserTokenExpired Indique que le jeton de l'utilisateur actuel a expiré, par exemple, l'utilisateur peut avoir modifié le mot de passe du compte sur un autre appareil. Vous devez inviter l'utilisateur à se reconnecter sur cet appareil.
FIRAuthErrorCodeTooManyRequests Indique que la demande a été bloquée après qu'un nombre anormal de demandes a été effectué depuis l'appareil appelant vers les serveurs Firebase Authentication. Réessayez après un certain temps.
FIRAuthErrorCodeInvalidAPIKey Indique que l'application a été configurée avec une clé API non valide.
FIRAuthErrorCodeAppNotAuthorized Indique que l'application n'est pas autorisée à utiliser l'authentification Firebase avec la clé API fournie. accédez à la console API Google et vérifiez sous l'onglet informations d'identification que la clé API que vous utilisez a l'ID de bundle de votre application sur liste blanche.
FIRAuthErrorCodeKeychainError Indique qu'une erreur s'est produite lors de l'accès au trousseau. Les NSLocalizedFailureReasonErrorKey et NSUnderlyingErrorKey champs dans le NSError.userInfo dictionnaire contiendra plus d' informations sur l'erreur rencontrée.
FIRAuthErrorCodeInternalError Indique qu'une erreur interne s'est produite. S'il vous plaît signaler l'erreur avec l'ensemble NSError objet.

Codes d'erreur spécifiques à la méthode

FIRAuth

fetchProvidersForEmail:achèvement :

Code Sens
FIRAuthErrorCodeInvalidEmail Indique que l'adresse e-mail est mal formée.

connexionAvecEmail:mot de passe:achèvement :

Code Sens
FIRAuthErrorCodeOperationNotAllowed Indique que les comptes de messagerie et de mot de passe ne sont pas activés. Les activer dans la section Auth de la console Firebase .
FIRAuthErrorCodeInvalidEmail Indique que l'adresse e-mail est mal formée.
FIRAuthErrorCodeUserDisabled Indique que le compte de l'utilisateur est désactivé.
FIRAuthErrorCodeWrongPassword Indique que l'utilisateur a tenté de se connecter avec un mot de passe erroné.

signInWithCredential:achèvement :

Code Sens
FIRAuthErrorCodeInvalidCredential Indique que les informations d'identification fournies ne sont pas valides. Cela peut arriver s'il a expiré ou s'il est mal formé.
FIRAuthErrorCodeInvalidEmail Indique l'adresse e - mail est malformé, si des titres de compétence est du type EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed Indique que les comptes avec le fournisseur d'identité représenté par les informations d'identification ne sont pas activés. Les activer dans la section Auth de la console Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Indique que l'e-mail revendiqué par les informations d'identification (par exemple, l'e-mail dans un jeton d'accès Facebook) est déjà utilisé par un compte existant, qui ne peut pas être authentifié avec cette méthode de connexion. Appel fetchProvidersForEmail pour l'e- mail de cet utilisateur puis les invite à signer avec l' un des fournisseurs de connexion retournés. Cette erreur ne sera levée si le paramètre « Un compte par adresse e - mail » est activée dans la console Firebase , sous Paramètres d' authentification.
FIRAuthErrorCodeUserDisabled Indique que le compte de l'utilisateur est désactivé.
FIRAuthErrorCodeWrongPassword Indique l'utilisateur signe une tentative avec un mot de passe erroné, si des titres de compétence est du type EmailPasswordAuthCredential .

Connectez-vousAnonymementAvecComplétion :

Code Sens
FIRAuthErrorCodeOperationNotAllowed Indique que les comptes anonymes ne sont pas activés. Les activer dans la section Auth de la console Firebase .

signInWithCustomToken : achèvement :

Code Sens
FIRAuthErrorCodeInvalidCustomToken Indique une erreur de validation avec le jeton personnalisé.
FIRAuthErrorCodeCustomTokenMismatch Indique que le compte de service et la clé API appartiennent à des projets différents.

createUserWithEmail:password:complétion :

Code Sens
FIRAuthErrorCodeInvalidEmail Indique que l'adresse e-mail est mal formée.
FIRAuthErrorCodeEmailAlreadyInUse Indique que l'e-mail utilisé pour tenter de s'inscrire existe déjà. Appel fetchProvidersForEmail pour vérifier que la connexion à des mécanismes tels utilisateur utilisé, et invite l'utilisateur à se connecter avec un de ceux -ci .
FIRAuthErrorCodeOperationNotAllowed Indique que les comptes de messagerie et de mot de passe ne sont pas activés. Les activer dans la section d' authentification de la console Firebase .
FIRAuthErrorCodeWeakPassword Indique une tentative de définition d'un mot de passe considéré comme trop faible. Le NSLocalizedFailureReasonErrorKey champ dans le NSError.userInfo objet dictionnaire contiendra des explications plus détaillées qui peuvent être affichées à l'utilisateur.

se déconnecter:

Code Sens
FIRAuthErrorCodeKeychainError A indiqué qu'une erreur s'est produite lors de l'accès au trousseau. Les NSLocalizedFailureReasonErrorKey et NSUnderlyingErrorKey champs dans le NSError.userInfo dictionnaire contiendra plus d' informations sur l'erreur rencontrée.

FIRUser

Erreurs courantes pour les opérations FIRUser

Code Sens
FIRAuthErrorCodeInvalidUserToken Indique que le jeton d'actualisation de l'utilisateur connecté, qui contient les informations de session, n'est pas valide. Vous devez inviter l'utilisateur à se reconnecter sur cet appareil.
FIRAuthErrorCodeUserDisabled Indique que le compte de l'utilisateur est désactivé et ne peut plus être utilisé tant qu'il n'est pas réactivé dans le panneau Utilisateurs de la console Firebase.

réauthentifierAvecCredential:achèvement :

Code Sens
FIRAuthErrorCodeInvalidCredential Indique que les informations d'identification fournies ne sont pas valides. Cela peut arriver s'il a expiré ou s'il est mal formé.
FIRAuthErrorCodeInvalidEmail Indique l'adresse e - mail est malformé, si des titres de compétence est du type EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Indique l'utilisateur a essayé de ré - authentification avec un mot de passe incorrect, si des titres de compétence est du type EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Indique qu'une tentative de réauthentification a été effectuée avec un utilisateur qui n'est pas l'utilisateur actuel.
FIRAuthErrorCodeOperationNotAllowed Indique que les comptes avec le fournisseur d'identité représenté par les informations d'identification ne sont pas activés. Les activer dans la section Auth de la console Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Indique que l'e-mail revendiqué par les informations d'identification (par exemple, l'e-mail dans un jeton d'accès Facebook) est déjà utilisé par un compte existant, qui ne peut pas être réauthentifié avec cette méthode de connexion. Appel fetchProvidersForEmail pour l'e- mail de cet utilisateur puis les invite à signer avec l' un des fournisseurs de connexion retournés. Cette erreur ne sera levée si le paramètre « Un compte par adresse e - mail » est activée dans la console Firebase , sous Paramètres d' authentification.
FIRAuthErrorCodeUserDisabled Indique que le compte de l'utilisateur est désactivé.

updateEmail :achèvement :

Code Sens
FIRAuthErrorCodeEmailAlreadyInUse Indique que l'e-mail est déjà utilisé par un autre compte.
FIRAuthErrorCodeInvalidEmail Indique que l'adresse e-mail est mal formée.
FIRAuthErrorCodeRequiresRecentLogin La mise à jour de l'e-mail d'un utilisateur est une opération sensible à la sécurité qui nécessite une connexion récente de l'utilisateur. Cette erreur indique que l'utilisateur ne s'est pas connecté assez récemment. Pour résoudre, réauthentifier l'utilisateur en invoquant reauthenticateWithCredential:completion: le FIRUser .

mot de passe de mise à jour : complétion :

Code Sens
FIRAuthErrorCodeOperationNotAllowed Indique que l'administrateur a désactivé la connexion avec le fournisseur d'identité spécifié.
FIRAuthErrorCodeRequiresRecentLogin La mise à jour du mot de passe d'un utilisateur est une opération sensible à la sécurité qui nécessite une connexion récente de l'utilisateur. Cette erreur indique que l'utilisateur ne s'est pas connecté assez récemment. Pour résoudre, réauthentifier l'utilisateur en invoquant reauthenticateWithCredential:completion: le FIRUser .
FIRAuthErrorCodeWeakPassword Indique une tentative de définition d'un mot de passe considéré comme trop faible. Le NSLocalizedFailureReasonErrorKey champ dans le NSError.userInfo objet dictionnaire contiendra des explications plus détaillées qui peuvent être affichées à l'utilisateur.

linkWithCredential:achèvement :

Code Sens
FIRAuthErrorCodeProviderAlreadyLinked Indique une tentative d'association d'un fournisseur d'un type déjà associé à ce compte.
FIRAuthErrorCodeCredentialAlreadyInUse Indique une tentative d'association avec un identifiant qui a déjà été associé à un autre compte Firebase.
FIRAuthErrorCodeOperationNotAllowed Indique que les comptes avec le fournisseur d'identité représenté par les informations d'identification ne sont pas activés. Les activer dans la section Auth de la console Firebase .

Cette méthode peut également renvoyer des codes d'erreur associés à updateEmail:completion: et updatePassword:completion: le FIRUser .

unlinkFromProvider:achèvement :

Code Sens
FIRAuthErrorCodeNoSuchProvider Indique une tentative de dissociation d'un fournisseur qui n'est pas lié au compte.
FIRAuthErrorCodeRequiresRecentLogin La mise à jour des e-mails est une opération sensible à la sécurité qui nécessite une connexion récente de l'utilisateur. Cette erreur indique que l'utilisateur ne s'est pas connecté assez récemment. Pour résoudre, réauthentifier l'utilisateur en invoquant reauthenticateWithCredential:completion: le FIRUser .

sendEmailVerificationWithCompletion :

Code Sens
FIRAuthErrorCodeUserNotFound Indique que le compte utilisateur n'a pas été trouvé.

deleteWithCompletion :

Code Sens
FIRAuthErrorCodeRequiresRecentLogin La suppression d'un compte utilisateur est une opération sensible à la sécurité qui nécessite une connexion récente de l'utilisateur. Cette erreur indique que l'utilisateur ne s'est pas connecté assez récemment. Pour résoudre, réauthentifier l'utilisateur en invoquant reauthenticateWithCredential:completion: le FIRUser .