Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Lidar com erros de autenticação do Firebase Apple Platforms

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Se o retorno de chamada de conclusão nos métodos de autenticação receber um argumento NSError de nil, ocorreu um erro. Para enviar para a lógica de tratamento de erros apropriada em seu código de produção, verifique o código de erro em relação aos erros comuns e aos erros específicos do método listados abaixo.

Alguns erros podem ser resolvidos por ações específicas do usuário, por exemplo, FIRAuthErrorCodeUserTokenExpired pode ser resolvido fazendo o login do usuário novamente e FIRAuthErrorCodeWrongPassword solicitando que o usuário forneça a senha correta.

Exceto no caso de FIRAuthErrorCodeNetworkError ou FIRAuthErrorCodeTooManyRequests , a repetição de uma operação com falha com os mesmos argumentos nunca será bem-sucedida. Não faça suposições sobre se a operação entrou ou não em vigor no lado do servidor.

Ao investigar ou registrar erros, revise o dicionário userInfo . FIRAuthErrorNameKey contém uma string de nome de erro de plataforma cruzada que pode ser usada para identificar o erro. NSLocalizedDescriptionKey contém uma descrição do erro. Esta descrição é destinada ao desenvolvedor, não ao usuário. NSUnderlyingErrorKey contém o erro subjacente que causou o erro em questão, se um erro subjacente estiver presente.

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

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

Código Significado
FIRAuthErrorCodeNetworkError Indica que ocorreu um erro de rede durante a operação.
FIRAuthErrorCodeUserNotFound Indica que a conta de usuário não foi encontrada. Isso pode acontecer se a conta do usuário tiver sido 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 neste dispositivo.
FIRAuthErrorCodeTooManyRequests Indica que a solicitação foi bloqueada depois que um número anormal de solicitações foi feito do dispositivo chamador para os servidores do Firebase Authentication. Tente novamente depois de 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. vá para o Google API Console e verifique na guia credenciais se a chave de API que você está usando tem o ID do pacote do seu aplicativo na lista de permissões.
FIRAuthErrorCodeKeychainError Indica que ocorreu um erro ao acessar o chaveiro. 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. Por favor , reporte o erro com todo o objeto NSError .

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

FIRAuth

fetchProvidersForEmail:completion:

Código Significado
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail está malformado.

signInWithEmail:senha:conclusão:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que as contas de e-mail e senha não estão habilitadas. Ative-os na seção Auth do console do Firebase .
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail está malformado.
FIRAuthErrorCodeUserDisabled Indica que a conta do usuário está desabilitada.
FIRAuthErrorCodeWrongPassword Indica que o usuário tentou entrar com uma senha errada.

signInWithCredential:completion:

Código Significado
FIRAuthErrorCodeInvalidCredential Indica que a credencial fornecida é inválida. Isso pode acontecer se tiver expirado ou estiver malformado.
FIRAuthErrorCodeInvalidEmail Indica que o endereço de email está malformado, se a credencial for do tipo EmailPasswordAuthCredential .
FIRAuthErrorCodeOperationNotAllowed Indica que as contas com o provedor de identidade representado pela credencial não estão habilitadas. Ative-os na seção Auth do console do Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail declarado pela credencial (por exemplo, o e-mail em um token de acesso do Facebook) já está em uso por uma conta existente, que não pode ser autenticada com este método de login. Chame fetchProvidersForEmail para o e-mail deste usuário e, em seguida, solicite que eles entrem com qualquer um dos provedores de login retornados. Esse erro só será gerado se a configuração "Uma conta por endereço de e-mail" estiver ativada no console do Firebase , em Configurações de autenticação.
FIRAuthErrorCodeUserDisabled Indica que a conta do usuário está desabilitada.
FIRAuthErrorCodeWrongPassword Indica que o usuário tentou entrar com uma senha errada, se a credencial for do tipo EmailPasswordAuthCredential .

signInAnonymouslyWithCompletion:

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

signInWithCustomToken:conclusão:

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 projetos diferentes.

createUserWithEmail:senha:conclusão:

Código Significado
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail está malformado.
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail usado para tentar se inscrever já existe. Chame fetchProvidersForEmail para verificar quais mecanismos de entrada esse usuário usou e solicite que o usuário entre com um deles.
FIRAuthErrorCodeOperationNotAllowed Indica que as contas de e-mail e senha não estão habilitadas. Ative-os na seção Autenticação do console do Firebase .
FIRAuthErrorCodeWeakPassword Indica uma tentativa de definir uma senha considerada muito fraca. O campo NSLocalizedFailureReasonErrorKey no objeto de dicionário NSError.userInfo conterá uma explicação mais detalhada que pode ser mostrada ao usuário.

sair:

Código Significado
FIRAuthErrorCodeKeychainError Indicou que ocorreu um erro ao acessar o chaveiro. 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 FIRUser

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

reauthenticateWithCredential:completion:

Código Significado
FIRAuthErrorCodeInvalidCredential Indica que a credencial fornecida é inválida. Isso pode acontecer se tiver expirado ou estiver malformado.
FIRAuthErrorCodeInvalidEmail Indica que o endereço de email está malformado, se a credencial for do tipo EmailPasswordAuthCredential .
FIRAuthErrorCodeWrongPassword Indica que o usuário tentou reautenticar com uma senha incorreta, se a credencial for do tipo EmailPasswordAuthCredential .
FIRAuthErrorCodeUserMismatch Indica que foi feita uma tentativa de reautenticação com um usuário que não é o usuário atual.
FIRAuthErrorCodeOperationNotAllowed Indica que as contas com o provedor de identidade representado pela credencial não estão habilitadas. Ative-os na seção Auth do console do Firebase .
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail declarado pela credencial (por exemplo, o e-mail em um token de acesso do Facebook) já está em uso por uma conta existente, que não pode ser reautenticada com este método de login. Chame fetchProvidersForEmail para o e-mail deste usuário e, em seguida, solicite que eles entrem com qualquer um dos provedores de login retornados. Esse erro só será gerado se a configuração "Uma conta por endereço de e-mail" estiver ativada no console do Firebase , em Configurações de autenticação.
FIRAuthErrorCodeUserDisabled Indica que a conta do usuário está desabilitada.

atualizaçãoEmail:conclusão:

Código Significado
FIRAuthErrorCodeEmailAlreadyInUse Indica que o e-mail já está em uso por outra conta.
FIRAuthErrorCodeInvalidEmail Indica que o endereço de e-mail está malformado.
FIRAuthErrorCodeRequiresRecentLogin A atualização do e-mail de um usuário é uma operação sensível à segurança que requer um login recente do usuário. Este erro indica que o usuário não fez login recentemente o suficiente. Para resolver, reautentique o usuário invocando reauthenticateWithCredential:completion: on FIRUser .

atualizaçãoSenha:conclusão:

Código Significado
FIRAuthErrorCodeOperationNotAllowed Indica que o administrador desativou o login com o provedor de identidade especificado.
FIRAuthErrorCodeRequiresRecentLogin A atualização da senha de um usuário é uma operação sensível à segurança que requer um login recente do usuário. Este erro indica que o usuário não fez login recentemente o suficiente. Para resolver, reautentique o usuário invocando reauthenticateWithCredential:completion: on FIRUser .
FIRAuthErrorCodeWeakPassword Indica uma tentativa de definir uma senha considerada muito fraca. 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 esta conta.
FIRAuthErrorCodeCredentialAlreadyInUse Indica uma tentativa de vinculação a uma credencial que já foi vinculada a uma conta diferente do Firebase.
FIRAuthErrorCodeOperationNotAllowed Indica que as contas com o provedor de identidade representado pela credencial não estão habilitadas. Ative-os na seção Auth do console do Firebase .

Esse método também pode retornar códigos de erro associados a updateEmail:completion: e updatePassword:completion: em FIRUser .

unlinkFromProvider:completion:

Código Significado
FIRAuthErrorCodeNoSuchProvider Indica uma tentativa de desvincular um provedor que não está vinculado à conta.
FIRAuthErrorCodeRequiresRecentLogin A atualização de e-mail é uma operação sensível à segurança que requer um login recente do usuário. Este erro indica que o usuário não fez login recentemente o suficiente. Para resolver, reautentique o usuário invocando reauthenticateWithCredential:completion: on FIRUser .

sendEmailVerificationWithCompletion:

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

deleteWithCompletion:

Código Significado
FIRAuthErrorCodeRequiresRecentLogin A exclusão de uma conta de usuário é uma operação sensível à segurança que requer um login recente do usuário. Este erro indica que o usuário não fez login recentemente o suficiente. Para resolver, reautentique o usuário invocando reauthenticateWithCredential:completion: on FIRUser .