Manejar errores de autenticación de plataformas Apple de Firebase
Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
Si la devolución de llamada de finalización de 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 nuevamente y FIRAuthErrorCodeWrongPassword pidiéndole 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 haga suposiciones sobre si la operación ha tenido efecto o no en el lado del servidor.
Al investigar o registrar errores, revise el diccionario userInfo . FIRAuthErrorNameKey contiene una cadena de nombre de error multiplataforma que se puede utilizar 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 causó 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 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 se produjo un error de red durante la operación.
FIRAuthErrorCodeUserNotFound
Indica que no se encontró la cuenta de usuario. Esto podría suceder si la cuenta de usuario ha sido eliminada.
FIRAuthErrorCodeUserTokenExpired
Indica que el token del usuario actual ha caducado; por ejemplo, es posible que el usuario haya cambiado la contraseña de la cuenta en otro dispositivo. Debe pedirle al usuario que inicie sesión nuevamente 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 Firebase Authentication. Vuelva a intentarlo después de un tiempo.
FIRAuthErrorCodeInvalidAPIKey
Indica que la aplicación se ha configurado con una clave API no válida.
FIRAuthErrorCodeAppNotAuthorized
Indica que la aplicación no está autorizada a utilizar Firebase Authentication con la clave 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 del 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 todo el objeto NSError .
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. Llame a fetchProvidersForEmail para obtener el correo electrónico de este usuario y luego solicítele que inicie sesión con cualquiera de los proveedores de inicio de sesión devueltos. Este error solo se producirá 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 proyectos diferentes.
crearUsuarioConEmail: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 comprobar qué mecanismos de inicio de sesión utilizó dicho usuario y solicite al usuario que inicie sesión con uno de ellos.
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 pedirle al usuario que inicie sesión nuevamente en este dispositivo.
FIRAuthErrorCodeUserDisabled
Indica que la cuenta del usuario está deshabilitada y ya no se puede usar hasta que se habilite nuevamente desde el panel Usuarios en Firebase console.
reauthenticateWithCredential: 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 en una cuenta existente, que no se puede volver a autenticar con este método de inicio de sesión. Llame a fetchProvidersForEmail para obtener el correo electrónico de este usuario y luego solicítele que inicie sesión con cualquiera de los proveedores de inicio de sesión devueltos. Este error solo se producirá 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.
actualizarCorreo electrónico: finalización:
Código
Significado
FIRAuthErrorCodeEmailAlreadyInUse
Indica que el correo electrónico ya está en uso en 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 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 .
actualizarContraseñ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 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 .
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 vincular 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 .
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 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 .
enviarEmailVerificationWithCompletion:
Código
Significado
FIRAuthErrorCodeUserNotFound
Indica que no se encontró la cuenta de usuario.
eliminar con finalización:
Código
Significado
FIRAuthErrorCodeRequiresRecentLogin
Eliminar 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 .
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Me falta la información que necesito","missingTheInformationINeed","thumb-down"],["Es demasiado complicado o hay demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Está obsoleto","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema de muestras o código","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2024-03-20 (UTC)."],[],[]]