Si la devolución de llamada de finalización en métodos de Authentication recibe un argumento NSError
que
no es nulo, significa que hubo un problema. Para realizar el envío a la lógica de manejo correspondiente en tu código de producción, usa el código de error para averiguar si es uno de los errores comunes o específicos de métodos que se mencionan a continuación.
Algunos errores pueden resolverse a través de acciones específicas de los usuarios. Por ejemplo, para resolver FIRAuthErrorCodeUserTokenExpired
se debe volver a acceder y para resolver FIRAuthErrorCodeWrongPassword
se debe solicitar al usuario que proporcione la contraseña correcta.
Excepto por FIRAuthErrorCodeNetworkError
o FIRAuthErrorCodeTooManyRequests
, reintentar una operación fallida con los mismos argumentos producirá un error. No asumas que las operaciones en cuestión han tenido o no algún efecto en el servidor.
Cuando investigues o registres errores, revisa el diccionario userInfo
.
FIRAuthErrorNameKey
contiene una string de nombre de error multiplataforma que se puede usar para identificar el error.
NSLocalizedDescriptionKey
contiene una descripción del error. Esta descripción se diseñó con el desarrollador en mente, no el usuario.
NSUnderlyingErrorKey
contiene el error subyacente que ocasionó el error, en los casos en que exista un error subyacente.
Además de los campos principales mencionados anteriormente, puede haber otros campos en el diccionario userInfo
que pueden resultarte útiles al diagnosticar errores.
Códigos de error comunes para todos los métodos de API
Código |
Significado |
FIRAuthErrorCodeNetworkError |
Indica que ocurrió un error de red durante la operación. |
FIRAuthErrorCodeUserNotFound |
Indica que no se encontró la cuenta de usuario. Esto podría suceder si se eliminó la cuenta de usuario. |
FIRAuthErrorCodeUserTokenExpired |
Indica que el token del usuario caducó. Por ejemplo, es posible que el usuario haya cambiado su contraseña en otro dispositivo. Debes indicarle al usuario que vuelva a acceder en este dispositivo. |
FIRAuthErrorCodeTooManyRequests |
Indica que la solicitud se bloqueó después de la recepción de un número atípico de solicitudes realizadas a los servidores de Firebase Authentication desde el dispositivo emisor. Vuelve a intentarlo más tarde. |
FIRAuthErrorCodeInvalidAPIKey |
Indica que la aplicación se configuró con una clave de API no válida. |
FIRAuthErrorCodeAppNotAuthorized |
Indica que la app no está autorizada para usar Firebase Authentication con la clave de API proporcionada. Ve a la Consola de API de Google y revisa en la pestaña Credenciales que la clave de API que estás usando incluya el ID del paquete de tu aplicación en su lista blanca. |
FIRAuthErrorCodeKeychainError |
Indica que ocurrió un error cuando se accedía al llavero. Los campos NSLocalizedFailureReasonErrorKey y NSUnderlyingErrorKey en el diccionario NSError.userInfo contendrán más información sobre el error. |
FIRAuthErrorCodeInternalError |
Indica que se produjo un error interno. Informa este error con el objeto NSError completo. |
Códigos de error específicos de métodos
FIRAuth
fetchProvidersForEmail:completion:
Código |
Significado |
FIRAuthErrorCodeInvalidEmail |
Indica que la dirección de correo electrónico no tiene el formato correcto. |
signInWithEmail:password:completion:
Código |
Significado |
FIRAuthErrorCodeOperationNotAllowed |
Indica que las cuentas de correo electrónico y contraseña no están habilitadas. Habilítalas en la sección Auth de Firebase console. |
FIRAuthErrorCodeInvalidEmail |
Indica que la dirección de correo electrónico no tiene el formato correcto. |
FIRAuthErrorCodeUserDisabled |
Indica que la cuenta del usuario está inhabilitada. |
FIRAuthErrorCodeWrongPassword |
El usuario intentó acceder con una contraseña incorrecta. |
signInWithCredential:completion:
Código |
Significado |
FIRAuthErrorCodeInvalidCredential |
Indica que la credencial que se ingresó no es válida. Por ejemplo, puede haberse vencido o tener un formato incorrecto. |
FIRAuthErrorCodeInvalidEmail |
Indica que la dirección de correo electrónico no tiene el formato correcto, si el tipo de credencial es EmailPasswordAuthCredential . |
FIRAuthErrorCodeOperationNotAllowed |
Indica que no se habilitaron las cuentas con proveedor de identidad representadas por la credencial. Habilítalas en la sección Auth de Firebase console. |
FIRAuthErrorCodeEmailAlreadyInUse |
Indica que el correo electrónico aseverado por la credencial (p. ej., el correo electrónico de un token de acceso de Facebook) ya está siendo utilizado por otra cuenta y no se puede autenticar con este método de acceso. Llama a fetchProvidersForEmail para obtener el correo electrónico de este usuario y, luego, solicita que acceda con cualquiera de los proveedores de acceso mostrados. Este error solo aparecerá si se habilita la configuración “Una cuenta por dirección de correo electrónico” en Firebase console, en la sección Authentication. |
FIRAuthErrorCodeUserDisabled |
Indica que la cuenta del usuario está inhabilitada. |
FIRAuthErrorCodeWrongPassword |
Indica que el usuario intentó acceder con una contraseña incorrecta, si el tipo de credencial es EmailPasswordAuthCredential . |
signInAnonymouslyWithCompletion:
Código |
Significado |
FIRAuthErrorCodeOperationNotAllowed |
Indica que no están habilitadas las cuentas anónimas. Habilítalas en la sección Auth de Firebase console. |
signInWithCustomToken:completion:
Código |
Significado |
FIRAuthErrorCodeInvalidCustomToken |
Indica que ocurrió un error de validación con el token personalizado. |
FIRAuthErrorCodeCustomTokenMismatch |
Indica que la cuenta de servicio y la clave de API pertenecen a proyectos diferentes. |
createUserWithEmail:password:completion:
Código |
Significado |
FIRAuthErrorCodeInvalidEmail |
Indica que la dirección de correo electrónico no tiene el formato correcto. |
FIRAuthErrorCodeEmailAlreadyInUse |
Indica que el correo electrónico con el que se intentó acceder ya existe. Llama a fetchProvidersForEmail para verificar cuáles fueron los mecanismos con los que el usuario accedió anteriormente y solicítale que acceda con uno de ellos. |
FIRAuthErrorCodeOperationNotAllowed |
Indica que las cuentas de correo electrónico y contraseña no están habilitadas. Habilita estas opciones en la sección Authentication de Firebase console. |
FIRAuthErrorCodeWeakPassword |
Indica que se intentó configurar una contraseña poco segura. El campo NSLocalizedFailureReasonErrorKey en el objeto de diccionario NSError.userInfo contendrá una explicación más detallada que se puede mostrar al usuario. |
signOut:
Código |
Significado |
FIRAuthErrorCodeKeychainError |
Indica que ocurrió un error cuando se intentaba acceder al llavero. Los campos NSLocalizedFailureReasonErrorKey y NSUnderlyingErrorKey en el diccionario NSError.userInfo contendrán más información sobre el error. |
FIRUser
Errores comunes para operaciones de FIRUser
Código |
Significado |
FIRAuthErrorCodeInvalidUserToken |
Indica que el token de actualización del usuario activo, que contiene la información sobre la sesión, no es válido. Debes indicarle al usuario que vuelva a acceder en este dispositivo. |
FIRAuthErrorCodeUserDisabled |
Indica que la cuenta del usuario está inhabilitada y que no se puede utilizar sino hasta que se habilite nuevamente en el panel Usuarios de Firebase console. |
reauthenticateWithCredential:completion:
Código |
Significado |
FIRAuthErrorCodeInvalidCredential |
Indica que la credencial que se ingresó no es válida. Por ejemplo, puede haberse vencido o tener un formato incorrecto. |
FIRAuthErrorCodeInvalidEmail |
Indica que la dirección de correo electrónico no tiene el formato correcto, si el tipo de credencial es EmailPasswordAuthCredential . |
FIRAuthErrorCodeWrongPassword |
Indica que el usuario intentó volver a autenticarse con una contraseña incorrecta, si el tipo de credencial es EmailPasswordAuthCredential . |
FIRAuthErrorCodeUserMismatch |
Indica que un usuario distinto del usuario actual intentó reautenticarse. |
FIRAuthErrorCodeOperationNotAllowed |
Indica que no se habilitaron las cuentas con proveedor de identidad representadas por la credencial. Habilítalas en la sección Auth de Firebase console. |
FIRAuthErrorCodeEmailAlreadyInUse |
Indica que el correo electrónico que se declara en la credencial (p. ej., el correo electrónico de un token de acceso de Facebook) ya lo está usando otra cuenta y no se puede volver a autenticar con este método de acceso. Llama a fetchProvidersForEmail para obtener el correo electrónico de este usuario y, luego, solicita que acceda con cualquiera de los proveedores de acceso mostrados. Este error solo aparecerá si se habilita la configuración “Una cuenta por dirección de correo electrónico” en Firebase console, en la sección Authentication. |
FIRAuthErrorCodeUserDisabled |
Indica que la cuenta del usuario está inhabilitada. |
updateEmail:completion:
Código |
Significado |
FIRAuthErrorCodeEmailAlreadyInUse |
Indica que existe otra cuenta que utiliza ese correo electrónico. |
FIRAuthErrorCodeInvalidEmail |
Indica que la dirección de correo electrónico no tiene el formato correcto. |
FIRAuthErrorCodeRequiresRecentLogin |
La actualización del correo electrónico de un usuario es una operación de seguridad que requiere que el usuario haya accedido recientemente. Este error indica que el acceso del usuario no ha sido suficientemente reciente. Para solucionar este problema, invoca a reauthenticateWithCredential:completion: en FIRUser a fin de volver a autenticar al usuario. |
updatePassword:completion:
Código |
Significado |
FIRAuthErrorCodeOperationNotAllowed |
Indica que el administrador inhabilitó el acceso con el proveedor de identidad especificado. |
FIRAuthErrorCodeRequiresRecentLogin |
La actualización de la contraseña de un usuario es una operación de seguridad que requiere que el usuario haya accedido recientemente. Este error indica que el acceso del usuario no ha sido suficientemente reciente. Para solucionar este problema, invoca a reauthenticateWithCredential:completion: en FIRUser a fin de volver a autenticar al usuario. |
FIRAuthErrorCodeWeakPassword |
Indica que se intentó configurar una contraseña poco segura. El campo NSLocalizedFailureReasonErrorKey en el objeto de diccionario NSError.userInfo contendrá una explicación más detallada que se puede mostrar al usuario. |
linkWithCredential:completion:
Código |
Significado |
FIRAuthErrorCodeProviderAlreadyLinked |
Indica que se intentó vincular a esta cuenta un proveedor de un tipo que ya está vinculado. |
FIRAuthErrorCodeCredentialAlreadyInUse |
Indica que se intentó vincular con una credencial que ya se vinculó con otra cuenta de Firebase. |
FIRAuthErrorCodeOperationNotAllowed |
Indica que no se habilitaron las cuentas con proveedor de identidad representadas por la credencial. Habilítalas en la sección Auth de Firebase console. |
Este método también puede mostrar códigos de error asociados con updateEmail:completion:
y updatePassword:completion:
en FIRUser
.
unlinkFromProvider:completion:
Código |
Significado |
FIRAuthErrorCodeNoSuchProvider |
Indica que se intentó desvincular un proveedor que no está vinculado a la cuenta. |
FIRAuthErrorCodeRequiresRecentLogin |
La actualización del correo electrónico es una operación de seguridad que requiere que el usuario haya accedido recientemente. Este error indica que el acceso del usuario no ha sido suficientemente reciente. Para solucionar este problema, invoca a reauthenticateWithCredential:completion: en FIRUser a fin de volver a autenticar al usuario. |
sendEmailVerificationWithCompletion:
Código |
Significado |
FIRAuthErrorCodeUserNotFound |
Indica que no se encontró la cuenta de usuario. |
deleteWithCompletion:
Código |
Significado |
FIRAuthErrorCodeRequiresRecentLogin |
La eliminación de la cuenta de un usuario es una operación de seguridad sensible que requiere que el usuario haya accedido recientemente. Este error indica que el acceso del usuario no ha sido suficientemente reciente. Para solucionar este problema, invoca a reauthenticateWithCredential:completion: en FIRUser a fin de volver a autenticar al usuario. |