Entérate de todos los anuncios de Firebase Summit y descubre cómo Firebase puede ayudarte a acelerar el desarrollo de las apps y a ejecutarlas con confianza. Más información

Manejar errores de autenticación de Firebase Apple Platforms

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Si la devolución de llamada de finalización en los métodos de autenticación recibe un argumento NSError que no es nulo, se ha producido un error. Para enviar a la lógica de manejo de errores adecuada en su código de producción, verifique el código de error con los errores comunes y los errores específicos del método que se enumeran a continuación.

Algunos errores se pueden resolver mediante acciones particulares del usuario, por ejemplo, FIRAuthErrorCodeUserTokenExpired se puede resolver iniciando sesión de nuevo y FIRAuthErrorCodeWrongPassword pidiéndole al usuario que proporcione la contraseña correcta.

Excepto en el caso de FIRAuthErrorCodeNetworkError o FIRAuthErrorCodeTooManyRequests , volver a intentar una operación fallida con los mismos argumentos nunca tendrá éxito. No asuma si la operación se ha realizado o no en el lado del servidor.

Al investigar o registrar errores, revise el diccionario de información de userInfo . FIRAuthErrorNameKey contiene una cadena de nombre de error multiplataforma que se puede usar para identificar el error. NSLocalizedDescriptionKey contiene una descripción del error. Esta descripción está destinada al desarrollador, no al usuario. NSUnderlyingErrorKey contiene el error subyacente que provocó el error en cuestión, si hay un error subyacente.

Además de los campos principales enumerados anteriormente, puede haber otros campos en el diccionario de información de userInfo que pueden resultarle útiles al diagnosticar errores.

Códigos de error comunes a todos los métodos 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 ha eliminado la cuenta de usuario.
FIRAuthErrorCodeUserTokenExpired Indica que el token del usuario actual ha caducado, por ejemplo, el usuario puede haber cambiado la contraseña de la cuenta en otro dispositivo. Debe solicitar al usuario que vuelva a iniciar sesión en este dispositivo.
FIRAuthErrorCodeTooManyRequests Indica que la solicitud se bloqueó después de que se realizó una cantidad anormal de solicitudes desde el dispositivo que llama a los servidores de autenticación de Firebase. Vuelva a intentarlo después de un tiempo.
FIRAuthErrorCodeInvalidAPIKey Indica que la aplicación se configuró con una clave de API no válida.
FIRAuthErrorCodeAppNotAuthorized Indica que la aplicación no está autorizada para usar Firebase Authentication con la clave de API proporcionada. vaya a la Consola API de Google y verifique en la pestaña de credenciales que la clave API que está utilizando tenga el ID de paquete de su aplicación en la lista blanca.
FIRAuthErrorCodeKeychainError Indica que ocurrió un error al acceder al llavero. Los campos NSLocalizedFailureReasonErrorKey y NSUnderlyingErrorKey en el diccionario NSError.userInfo contendrán más información sobre el error encontrado.
FIRAuthErrorCodeInternalError Indica que ocurrió un error interno. Informe el error con el objeto NSError completo.

Códigos de error específicos del método

FIRAuth

fetchProvidersForEmail:finalización:

Código Significado
FIRAuthErrorCodeInvalidEmail Indica que la dirección de correo electrónico tiene un formato incorrecto.

iniciar sesión con correo electrónico: contraseña: finalización:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que las cuentas de correo electrónico y contraseña no están habilitadas. Habilítelos en la sección Auth de Firebase console .
FIRAuthErrorCodeInvalidEmail Indica que la dirección de correo electrónico tiene un formato incorrecto.
FIRAuthErrorCodeUserDisabled Indica que la cuenta del usuario está deshabilitada.
FIRAuthErrorCodeWrongPassword Indica que el usuario intentó iniciar sesión con una contraseña incorrecta.

iniciar sesión con credencial: finalización:

Código Significado
FIRAuthErrorCodeInvalidCredential Indica que la credencial proporcionada no es válida. Esto podría suceder si ha caducado o tiene un formato incorrecto.
FIRAuthErrorCodeInvalidEmail Indica que la dirección de correo electrónico tiene un formato incorrecto, si la credencial es del tipo EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed Indica que las cuentas con el proveedor de identidad representado por la credencial no están habilitadas. Habilítelos en la sección Auth de Firebase console .
FIRAuthErrorCodeEmailAlreadyInUse Indica que el correo electrónico afirmado por la credencial (por ejemplo, el correo electrónico en un token de acceso de Facebook) ya está en uso por una cuenta existente, que no se puede autenticar con este método de inicio de sesión. Llama a fetchProvidersForEmail para obtener el correo electrónico de este usuario y luego pídeles que inicien sesión con cualquiera de los proveedores de inicio de sesión devueltos. Este error solo aparecerá si la configuración "Una cuenta por dirección de correo electrónico" está habilitada en Firebase console , en Configuración de autenticación.
FIRAuthErrorCodeUserDisabled Indica que la cuenta del usuario está deshabilitada.
FIRAuthErrorCodeWrongPassword Indica que el usuario intentó iniciar sesión con una contraseña incorrecta, si la credencial es del tipo EmailPasswordAuthCredential .

iniciar sesión de forma anónima con finalización:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que las cuentas anónimas no están habilitadas. Habilítelos en la sección Auth de Firebase console .

signInWithCustomToken: finalización:

Código Significado
FIRAuthErrorCodeInvalidCustomToken Indica un error de validación con el token personalizado.
FIRAuthErrorCodeCustomTokenMismatch Indica que la cuenta de servicio y la clave API pertenecen a diferentes proyectos.

createUserWithEmail:contraseña:finalización:

Código Significado
FIRAuthErrorCodeInvalidEmail Indica que la dirección de correo electrónico tiene un formato incorrecto.
FIRAuthErrorCodeEmailAlreadyInUse Indica que el correo electrónico utilizado para intentar registrarse ya existe. Llame a fetchProvidersForEmail para verificar qué mecanismos de inicio de sesión usó dicho usuario y solicite al usuario que inicie sesión con uno de esos.
FIRAuthErrorCodeOperationNotAllowed Indica que las cuentas de correo electrónico y contraseña no están habilitadas. Habilítelos en la sección Autenticación de Firebase console .
FIRAuthErrorCodeWeakPassword Indica un intento de establecer una contraseña que se considera demasiado débil. El campo NSLocalizedFailureReasonErrorKey en el objeto de diccionario NSError.userInfo contendrá una explicación más detallada que se puede mostrar al usuario.

desconectar:

Código Significado
FIRAuthErrorCodeKeychainError Indicó que ocurrió un error al acceder al llavero. Los campos NSLocalizedFailureReasonErrorKey y NSUnderlyingErrorKey en el diccionario NSError.userInfo contendrán más información sobre el error encontrado.

FIRUser

Errores comunes para las operaciones de FIRUser

Código Significado
FIRAuthErrorCodeInvalidUserToken Indica que el token de actualización del usuario que inició sesión, que contiene información de la sesión, no es válido. Debe solicitar al usuario que vuelva a iniciar sesión en este dispositivo.
FIRAuthErrorCodeUserDisabled Indica que la cuenta del usuario está deshabilitada y ya no se puede usar hasta que se vuelva a habilitar desde el panel Usuarios en Firebase console.

reautenticar con credencial: finalización:

Código Significado
FIRAuthErrorCodeInvalidCredential Indica que la credencial proporcionada no es válida. Esto podría suceder si ha caducado o tiene un formato incorrecto.
FIRAuthErrorCodeInvalidEmail Indica que la dirección de correo electrónico tiene un formato incorrecto, si la credencial es del tipo EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Indica que el usuario intentó volver a autenticarse con una contraseña incorrecta, si la credencial es del tipo EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Indica que se intentó volver a autenticarse con un usuario que no es el usuario actual.
FIRAuthErrorCodeOperationNotAllowed Indica que las cuentas con el proveedor de identidad representado por la credencial no están habilitadas. Habilítelos en la sección Auth de Firebase console .
FIRAuthErrorCodeEmailAlreadyInUse Indica que el correo electrónico afirmado por la credencial (por ejemplo, el correo electrónico en un token de acceso de Facebook) ya está en uso por una cuenta existente, que no se puede volver a autenticar con este método de inicio de sesión. Llama a fetchProvidersForEmail para obtener el correo electrónico de este usuario y luego pídeles que inicien sesión con cualquiera de los proveedores de inicio de sesión devueltos. Este error solo aparecerá si la configuración "Una cuenta por dirección de correo electrónico" está habilitada en Firebase console , en Configuración de autenticación.
FIRAuthErrorCodeUserDisabled Indica que la cuenta del usuario está deshabilitada.

actualizar correo electrónico: finalización:

Código Significado
FIRAuthErrorCodeEmailAlreadyInUse Indica que el correo electrónico ya está en uso por otra cuenta.
FIRAuthErrorCodeInvalidEmail Indica que la dirección de correo electrónico tiene un formato incorrecto.
FIRAuthErrorCodeRequiresRecentLogin Actualizar el correo electrónico de un usuario es una operación sensible a la seguridad que requiere un inicio de sesión reciente del usuario. Este error indica que el usuario no ha iniciado sesión lo suficientemente recientemente. Para resolverlo, vuelva a autenticar al usuario invocando reauthenticateWithCredential:completion: en FIRUser .

actualizar contraseña: finalización:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que el administrador deshabilitó el inicio de sesión con el proveedor de identidad especificado.
FIRAuthErrorCodeRequiresRecentLogin Actualizar la contraseña de un usuario es una operación sensible a la seguridad que requiere un inicio de sesión reciente del usuario. Este error indica que el usuario no ha iniciado sesión lo suficientemente recientemente. Para resolverlo, vuelva a autenticar al usuario invocando reauthenticateWithCredential:completion: en FIRUser .
FIRAuthErrorCodeWeakPassword Indica un intento de establecer una contraseña que se considera demasiado débil. El campo NSLocalizedFailureReasonErrorKey en el objeto de diccionario NSError.userInfo contendrá una explicación más detallada que se puede mostrar al usuario.

linkWithCredential:finalización:

Código Significado
FIRAuthErrorCodeProviderAlreadyLinked Indica un intento de vincular un proveedor de un tipo ya vinculado a esta cuenta.
FIRAuthErrorCodeCredentialAlreadyInUse Indica un intento de vinculación con una credencial que ya se vinculó con una cuenta de Firebase diferente.
FIRAuthErrorCodeOperationNotAllowed Indica que las cuentas con el proveedor de identidad representado por la credencial no están habilitadas. Habilítelos en la sección Auth de Firebase console .

Este método también puede devolver códigos de error asociados con updateEmail:completion: y updatePassword:completion: en FIRUser .

unlinkFromProvider:finalización:

Código Significado
FIRAuthErrorCodeNoSuchProvider Indica un intento de desvincular un proveedor que no está vinculado a la cuenta.
FIRAuthErrorCodeRequiresRecentLogin La actualización del correo electrónico es una operación sensible a la seguridad que requiere un inicio de sesión reciente del usuario. Este error indica que el usuario no ha iniciado sesión lo suficientemente recientemente. Para resolverlo, vuelva a autenticar al usuario invocando reauthenticateWithCredential:completion: en FIRUser .

Enviar verificación de correo electrónico con finalización:

Código Significado
FIRAuthErrorCodeUserNotFound Indica que no se encontró la cuenta de usuario.

eliminar con finalización:

Código Significado
FIRAuthErrorCodeRequiresRecentLogin La eliminación de una cuenta de usuario es una operación sensible a la seguridad que requiere un inicio de sesión reciente por parte del usuario. Este error indica que el usuario no ha iniciado sesión lo suficientemente recientemente. Para resolverlo, vuelva a autenticar al usuario invocando reauthenticateWithCredential:completion: en FIRUser .