Solucionar erros de autenticação do Firebase no iOS

Se o retorno de chamada de conclusão em métodos Authentication receber um argumento NSError que não é nulo, ocorreu um erro. Para despachar o erro para uma lógica de apropriada de solução de erros no seu código de produção, verifique o código do erro na lista de erros comuns e erros específicos de métodos abaixo.

Alguns erros podem ser solucionados por ações específicas do usuário, por exemplo, FIRAuthErrorCodeUserTokenExpired pode ser solucionado quando o usuário faz login novamente e FIRAuthErrorCodeWrongPassword é solucionado ao solicitar que ele forneça a senha certa.

Com exceção do caso de FIRAuthErrorCodeNetworkError ou FIRAuthErrorCodeTooManyRequests, tentar novamente uma operação com falha usando os mesmos argumentos nunca terá sucesso. Não presuma se a operação teve ou não efeito no lado do servidor.

Ao investigar ou registrar erros, consulte o dicionário userInfo. FIRAuthErrorNameKey contém uma string de nome de erro multiplataforma que pode ser usada para identificar o erro. NSLocalizedDescriptionKey contém uma descrição do erro. Essa descrição é destinada ao desenvolvedor, não ao usuário. NSUnderlyingErrorKey contém o erro subjacente que causou o erro em questão, caso ele esteja presente.

Além dos campos principais listados acima, podem haver outros campos no dicionário userInfo, que podem ser útil para diagnosticar erros.

Códigos de erro comuns a todos os métodos de API

Código Significado
FIRAuthErrorCodeNetworkError Indica que um erro de rede ocorreu durante a operação.
FIRAuthErrorCodeUserNotFound Indica que a conta do usuário não foi encontrada. Isso pode acontecer se a conta do usuário foi excluída.
FIRAuthErrorCodeUserTokenExpired Indica que o token do usuário atual expirou, por exemplo, o usuário pode ter alterado a senha da conta em outro dispositivo. Você deve solicitar que o usuário faça login novamente no dispositivo em questão.
FIRAuthErrorCodeTooManyRequests Indica que a solicitação foi bloqueada após uma quantidade anormal de solicitações feitas do dispositivo chamador para os servidores do Firebase Authentication . Tente novamente após algum tempo.
FIRAuthErrorCodeInvalidAPIKey Indica que o aplicativo foi configurado com uma chave de API inválida.
FIRAuthErrorCodeAppNotAuthorized Indica que o aplicativo não está autorizado a usar o Firebase Authentication com a chave de API fornecida. Acesse o Google API Console e verifique na guia Credentials se a chave de API usada tem o ID de pacote do seu aplicativo na lista de permissões.
FIRAuthErrorCodeKeychainError Indica que ocorreu um erro ao acessar o conjunto de chaves. Os campos NSLocalizedFailureReasonErrorKey e NSUnderlyingErrorKey no dicionário NSError.userInfo conterão mais informações sobre o erro encontrado.
FIRAuthErrorCodeInternalError Indica que ocorreu um erro interno. Informe o erro com o objeto NSError inteiro.

Códigos de erro específicos de método

FIRAuth

fetchProvidersForEmail:completion:

Código Significado
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail é inválido.

signInWithEmail:password:completion:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que contas de endereço de e-mail e senha não foram ativadas. Ative-as na seção Auth do Firebase console.
FIRAuthErrorCodeUserDisabled Indica que a conta do usuário está desativada.
FIRAuthErrorCodeWrongPassword Indica que o usuário tentou fazer login com a senha errada.

signInWithCredential:completion:

Código Significado
FIRAuthErrorCodeInvalidCredential Indica que a credencial fornecida é inválida. Isso pode acontecer se ela tiver expirado ou se tiver formação inválida.
FIRAuthErrorCodeOperationNotAllowed Indica que contas com o provedor de identidade representado pela credencial não estão ativadas. Ative-as na seção Auth do Firebase console.
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail afirmado pela credencial (por exemplo, o e-mail em um token de acesso do Facebook) já está sendo usado por uma conta existente, que não pode ser autenticada com esse método de login. Chame fetchProvidersForEmail para o e-mail desse usuário e solicite que ele faça login com qualquer um dos provedores de login fornecidos. Esse erro só será acionado se a configuração "One account per email address" estiver ativada no Firebase console, nas configurações de Authentication .
FIRAuthErrorCodeUserDisabled Indica que a conta do usuário está desativada.
FIRAuthErrorCodeWrongPassword Indica que o usuário tentou fazer login com a senha errada, se a credencial for do tipo EmailAuthCredential.

signInAnonymouslyWithCompletion:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que contas anônimas não estão ativadas. Ative-as na seção Auth do Firebase console.

signInWithCustomToken:completion:

Código Significado
FIRAuthErrorCodeInvalidCustomToken Indica um erro de validação com o token personalizado.
FIRAuthErrorCodeCustomTokenMismatch Indica que a conta de serviço e a chave de API pertencem a diferentes projetos.

createUserWithEmail:password:completion:

Código Significado
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail é inválido.
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail usado na tentativa de login já existe. Chame fetchProvidersForEmail para verificar quais mecanismos de login o usuário usou e solicitar que ele faça login com um deles.
FIRAuthErrorCodeOperationNotAllowed Indica que contas de endereço de e-mail e senha não foram ativadas. Ative-as na seção Authentication do Firebase console.
FIRAuthErrorCodeWeakPassword Indica uma tentativa de definir uma senha considerada fraca demais. O campo NSLocalizedFailureReasonErrorKey no objeto de dicionário NSError.userInfo conterá uma explicação mais detalhada que pode ser mostrada ao usuário.

signOut:

Código Significado
FIRAuthErrorCodeKeychainError Indica que ocorreu um erro ao acessar o conjunto de chaves. Os campos NSLocalizedFailureReasonErrorKey e NSUnderlyingErrorKey no dicionário NSError.userInfo conterão mais informações sobre o erro encontrado.

FIRUser

Erros comuns para operações de FIRUser

Código Significado
FIRAuthErrorCodeInvalidUserToken Indica que o token de atualização do usuário conectado, que contém as informações da sessão, é inválido. Você deve solicitar que o usuário faça login novamente nesse dispositivo.
FIRAuthErrorCodeUserDisabled Indica que a conta do usuário está desativada e não pode mais ser usada até que seja reativada pelo painel Users no Firebase console.

updateEmail:completion:

Código Significado
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail já está sendo usado por outra conta.
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail é inválido.
FIRAuthErrorCodeRequiresRecentLogin Atualizar o e-mail de um usuário é uma operação com risco de segurança que exige um login recente do usuário. Esse erro indica que o usuário não fez login recentemente. Para solucioná-lo, reautentique o usuário invocando reauthenticateWithCredential:completion: no FIRUser.

updatePassword:completion:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que o administrador desativou o login com o provedor de identidade especificado.
FIRAuthErrorCodeRequiresRecentLogin Atualizar a senha de um usuário é uma operação com risco de segurança que exige um login recente do usuário. Esse erro indica que o usuário não fez login recentemente. Para solucioná-lo, reautentique o usuário invocando reauthenticateWithCredential:completion: no FIRUser.
FIRAuthErrorCodeWeakPassword Indica uma tentativa de definir uma senha considerada fraca demais. O campo NSLocalizedFailureReasonErrorKey no objeto de dicionário NSError.userInfo conterá uma explicação mais detalhada que pode ser mostrada ao usuário.

linkWithCredential:completion:

Código Significado
FIRAuthErrorCodeProviderAlreadyLinked Indica uma tentativa de vincular um provedor de um tipo já vinculado a essa conta.
FIRAuthErrorCodeCredentialAlreadyInUse Indica uma tentativa de vincular uma credencial que já foi vinculada a outra conta do Firebase.
FIRAuthErrorCodeOperationNotAllowed Indica que contas com o provedor de identidade representado pela credencial não estão ativadas. Ative-as na seção Auth do Firebase console.

Esse método pode retornar códigos de erro associados com updateEmail:completion: e updatePassword:completion: no FIRUser.

unlinkFromProvider:completion:

Código Significado
FIRAuthErrorCodeNoSuchProvider Indica uma tentativa de desvincular um provedor que não está vinculado à conta.
FIRAuthErrorCodeRequiresRecentLogin Atualizar o e-mail de um usuário é uma operação com risco de segurança que exige um login recente do usuário. Esse erro indica que o usuário não fez login recentemente. Para solucioná-lo, reautentique o usuário invocando reauthenticateWithCredential:completion: no FIRUser.

sendEmailVerificationWithCompletion:

Código Significado
FIRAuthErrorCodeUserNotFound Indica que a conta do usuário não foi encontrada.

deleteWithCompletion:

Código Significado
FIRAuthErrorCodeRequiresRecentLogin Atualizar o e-mail de um usuário é uma operação com risco de segurança que exige um login recente do usuário. Esse erro indica que o usuário não fez login recentemente. Para solucioná-lo, reautentique o usuário invocando reauthenticateWithCredential:completion: no FIRUser.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.