Last active
July 26, 2024 19:19
-
-
Save Albejr/a38cdeac247ef177986c99629680afb4 to your computer and use it in GitHub Desktop.
Localize Firebase error messages in PT-BR
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
catchError(err => { | |
const errorCode = err.code; | |
let errorMessage = this.VerifyErroCode(errorCode); | |
if (errorMessage == null) { | |
errorMessage = err.message; | |
} | |
console.log(errorMessage); | |
}) | |
VerifyErroCode(errorCode: string): string { | |
// fonte: https://firebase.google.com/docs/reference/js/firebase.auth.Auth | |
// fonte: https://firebase.google.com/docs/auth/admin/errors?hl=pt-br | |
switch (errorCode) { | |
case 'auth/app-deleted': | |
return 'O banco de dados não foi localizado.'; | |
case 'auth/expired-action-code': | |
return 'O código da ação o ou link expirou.'; | |
case 'auth/invalid-action-code': | |
return 'O código da ação é inválido. Isso pode acontecer se o código estiver malformado ou já tiver sido usado.'; | |
case 'auth/user-disabled': | |
return 'O usuário correspondente à credencial fornecida foi desativado.'; | |
case 'auth/user-not-found': | |
return 'O usuário não correponde à nenhuma credencial.'; | |
case 'auth/weak-password': | |
return 'A senha é muito fraca.'; | |
case 'auth/email-already-in-use': | |
return 'Já existi uma conta com o endereço de email fornecido.'; | |
case 'auth/invalid-email': | |
return 'O endereço de e-mail não é válido.'; | |
case 'auth/operation-not-allowed': | |
return 'O tipo de conta correspondente à esta credencial, ainda não encontra-se ativada.'; | |
case 'auth/account-exists-with-different-credential': | |
return 'E-mail já associado a outra conta.'; | |
case 'auth/auth-domain-config-required': | |
return 'A configuração para autenticação não foi fornecida.'; | |
case 'auth/credential-already-in-use': | |
return 'Já existe uma conta para esta credencial.'; | |
case 'auth/operation-not-supported-in-this-environment': | |
return 'Esta operação não é suportada no ambiente que está sendo executada. Verifique se deve ser http ou https.'; | |
case 'auth/timeout': | |
return 'Excedido o tempo de resposta. O domínio pode não estar autorizado para realizar operações.'; | |
case 'auth/missing-android-pkg-name': | |
return 'Deve ser fornecido um nome de pacote para instalação do aplicativo Android.'; | |
case 'auth/missing-continue-uri': | |
return 'A próxima URL deve ser fornecida na solicitação.'; | |
case 'auth/missing-ios-bundle-id': | |
return 'Deve ser fornecido um nome de pacote para instalação do aplicativo iOS.'; | |
case 'auth/invalid-continue-uri': | |
return 'A próxima URL fornecida na solicitação é inválida.'; | |
case 'auth/unauthorized-continue-uri': | |
return 'O domínio da próxima URL não está na lista de autorizações.'; | |
case 'auth/invalid-dynamic-link-domain': | |
return 'O domínio de link dinâmico fornecido, não está autorizado ou configurado no projeto atual.'; | |
case 'auth/argument-error': | |
return 'Verifique a configuração de link para o aplicativo.'; | |
case 'auth/invalid-persistence-type': | |
return 'O tipo especificado para a persistência dos dados é inválido.'; | |
case 'auth/unsupported-persistence-type': | |
return 'O ambiente atual não suportar o tipo especificado para persistência dos dados.'; | |
case 'auth/invalid-credential': | |
return 'A credencial expirou ou está mal formada.'; | |
case 'auth/wrong-password': | |
return 'Senha incorreta.'; | |
case 'auth/invalid-verification-code': | |
return 'O código de verificação da credencial não é válido.'; | |
case 'auth/invalid-verification-id': | |
return 'O ID de verificação da credencial não é válido.'; | |
case 'auth/custom-token-mismatch': | |
return 'O token está diferente do padrão solicitado.'; | |
case 'auth/invalid-custom-token': | |
return 'O token fornecido não é válido.'; | |
case 'auth/captcha-check-failed': | |
return 'O token de resposta do reCAPTCHA não é válido, expirou ou o domínio não é permitido.'; | |
case 'auth/invalid-phone-number': | |
return 'O número de telefone está em um formato inválido (padrão E.164).'; | |
case 'auth/missing-phone-number': | |
return 'O número de telefone é requerido.'; | |
case 'auth/quota-exceeded': | |
return 'A cota de SMS foi excedida.'; | |
case 'auth/cancelled-popup-request': | |
return 'Somente uma solicitação de janela pop-up é permitida de uma só vez.'; | |
case 'auth/popup-blocked': | |
return 'A janela pop-up foi bloqueado pelo navegador.'; | |
case 'auth/popup-closed-by-user': | |
return 'A janela pop-up foi fechada pelo usuário sem concluir o login no provedor.'; | |
case 'auth/unauthorized-domain': | |
return 'O domínio do aplicativo não está autorizado para realizar operações.'; | |
case 'auth/invalid-user-token': | |
return 'O usuário atual não foi identificado.'; | |
case 'auth/user-token-expired': | |
return 'O token do usuário atual expirou.'; | |
case 'auth/null-user': | |
return 'O usuário atual é nulo.'; | |
case 'auth/app-not-authorized': | |
return 'Aplicação não autorizada para autenticar com a chave informada.'; | |
case 'auth/invalid-api-key': | |
return 'A chave da API fornecida é inválida.'; | |
case 'auth/network-request-failed': | |
return 'Falha de conexão com a rede.'; | |
case 'auth/requires-recent-login': | |
return 'O último horário de acesso do usuário não atende ao limite de segurança.'; | |
case 'auth/too-many-requests': | |
return 'As solicitações foram bloqueadas devido a atividades incomuns. Tente novamente depois que algum tempo.'; | |
case 'auth/web-storage-unsupported': | |
return 'O navegador não suporta armazenamento ou se o usuário desativou este recurso.'; | |
case 'auth/invalid-claims': | |
return 'Os atributos de cadastro personalizado são inválidos.'; | |
case 'auth/claims-too-large': | |
return 'O tamanho da requisição excede o tamanho máximo permitido de 1 Megabyte.'; | |
case 'auth/id-token-expired': | |
return 'O token informado expirou.'; | |
case 'auth/id-token-revoked': | |
return 'O token informado perdeu a validade.'; | |
case 'auth/invalid-argument': | |
return 'Um argumento inválido foi fornecido a um método.'; | |
case 'auth/invalid-creation-time': | |
return 'O horário da criação precisa ser uma data UTC válida.'; | |
case 'auth/invalid-disabled-field': | |
return 'A propriedade para usuário desabilitado é inválida.'; | |
case 'auth/invalid-display-name': | |
return 'O nome do usuário é inválido.'; | |
case 'auth/invalid-email-verified': | |
return 'O e-mail é inválido.'; | |
case 'auth/invalid-hash-algorithm': | |
return 'O algoritmo de HASH não é uma criptografia compatível.'; | |
case 'auth/invalid-hash-block-size': | |
return 'O tamanho do bloco de HASH não é válido.'; | |
case 'auth/invalid-hash-derived-key-length': | |
return 'O tamanho da chave derivada do HASH não é válido.'; | |
case 'auth/invalid-hash-key': | |
return 'A chave de HASH precisa ter um buffer de byte válido.'; | |
case 'auth/invalid-hash-memory-cost': | |
return 'O custo da memória HASH não é válido.'; | |
case 'auth/invalid-hash-parallelization': | |
return 'O carregamento em paralelo do HASH não é válido.'; | |
case 'auth/invalid-hash-rounds': | |
return 'O arredondamento de HASH não é válido.'; | |
case 'auth/invalid-hash-salt-separator': | |
return 'O campo do separador de SALT do algoritmo de geração de HASH precisa ser um buffer de byte válido.'; | |
case 'auth/invalid-id-token': | |
return 'O código do token informado não é válido.'; | |
case 'auth/invalid-last-sign-in-time': | |
return 'O último horário de login precisa ser uma data UTC válida.'; | |
case 'auth/invalid-page-token': | |
return 'A próxima URL fornecida na solicitação é inválida.'; | |
case 'auth/invalid-password': | |
return 'A senha é inválida, precisa ter pelo menos 6 caracteres.'; | |
case 'auth/invalid-password-hash': | |
return 'O HASH da senha não é válida.'; | |
case 'auth/invalid-password-salt': | |
return 'O SALT da senha não é válido.'; | |
case 'auth/invalid-photo-url': | |
return 'A URL da foto de usuário é inválido.'; | |
case 'auth/invalid-provider-id': | |
return 'O identificador de provedor não é compatível.'; | |
case 'auth/invalid-session-cookie-duration': | |
return 'A duração do COOKIE da sessão precisa ser um número válido em milissegundos, entre 5 minutos e 2 semanas.'; | |
case 'auth/invalid-uid': | |
return 'O identificador fornecido deve ter no máximo 128 caracteres.'; | |
case 'auth/invalid-user-import': | |
return 'O registro do usuário a ser importado não é válido.'; | |
case 'auth/invalid-provider-data': | |
return 'O provedor de dados não é válido.'; | |
case 'auth/maximum-user-count-exceeded': | |
return 'O número máximo permitido de usuários a serem importados foi excedido.'; | |
case 'auth/missing-hash-algorithm': | |
return 'É necessário fornecer o algoritmo de geração de HASH e seus parâmetros para importar usuários.'; | |
case 'auth/missing-uid': | |
return 'Um identificador é necessário para a operação atual.'; | |
case 'auth/reserved-claims': | |
return 'Uma ou mais propriedades personalizadas fornecidas usaram palavras reservadas.'; | |
case 'auth/session-cookie-revoked': | |
return 'O COOKIE da sessão perdeu a validade.'; | |
case 'auth/uid-alread-exists': | |
return 'O indentificador fornecido já está em uso.'; | |
case 'auth/email-already-exists': | |
return 'O e-mail fornecido já está em uso.'; | |
case 'auth/phone-number-already-exists': | |
return 'O telefone fornecido já está em uso.'; | |
case 'auth/project-not-found': | |
return 'Nenhum projeto foi encontrado.'; | |
case 'auth/insufficient-permission': | |
return 'A credencial utilizada não tem permissão para acessar o recurso solicitado.'; | |
case 'auth/internal-error': | |
return 'O servidor de autenticação encontrou um erro inesperado ao tentar processar a solicitação.'; | |
default: | |
return null; | |
} | |
} |
Exemplo de uma função utilizando os dados da const Errors:
function loginFirebase(email, senha){
firebase.auth().signInWithEmailAndPassword(email, senha)
.then(result => {
//Faça algo
})
.catch(error => {
console.error(error.code)
alert(`Não foi possível efetuar o login \n Erro: ${errors[error.code]}`)
})
}
Vlw pessoal!!!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Código do erro Etapas de resolução e descrição - Direto do site do Firebase -
https://firebase.google.com/docs/auth/admin/errors
static const Map<String?, String> errorsMap = {
null: 'Erro desconhecido.',
'auth/claims-too-large' : 'O payload de declarações fornecido para setCustomUserClaims() excede o tamanho máximo permitido de 1.000 bytes.'
'auth/email-already-exists' : 'O e-mail fornecido já está em uso por outro usuário. Cada usuário precisa ter um e-mail exclusivo.'
'auth/id-token-expired' : 'O token de código do Firebase provisionado expirou.'
'auth/id-token-revoked' : 'O token de ID do Firebase foi revogado.'
'auth/insufficient-permission' : 'A credencial usada para inicializar o SDK Admin não tem permissão para acessar o recurso solicitado do Authentication. Consulte Configurar um projeto do Firebase para ver a documentação sobre como gerar uma credencial com as permissões apropriadas e usá-la na autenticação dos SDKs Admin.'
'auth/internal-error' : 'O servidor do Authentication encontrou um erro inesperado ao tentar processar a solicitação. A mensagem de erro incluirá a resposta do servidor de autenticação com informações adicionais. Se o erro persistir, informe o problema ao nosso canal de suporte de Relatório do bug.'
'auth/invalid-argument' : 'Um argumento inválido foi fornecido a um método do Authentication. A mensagem de erro precisa conter informações adicionais.'
'auth/invalid-claims' : 'Os atributos de declaração personalizados fornecidos para setCustomUserClaims() são inválidos.'
'auth/invalid-continue-uri' : 'O URL de confirmação precisa ser uma string de URL válida.'
'auth/invalid-creation-time' : 'O horário da criação precisa ser um string de data UTC válido.'
'auth/invalid-credential' : 'A credencial usada para autenticar os SDKs Admin não pode ser usada para executar a ação desejada. Determinados métodos de autenticação, como createCustomToken() e verifyIdToken(), requerem que o SDK seja inicializado com uma credencial de certificado em oposição a um token de atualização ou uma credencial padrão do aplicativo. Consulte Inicializar o SDK para ver a documentação sobre como autenticar os Admin SDKs com uma credencial de certificado.'
'auth/invalid-disabled-field' : 'O valor fornecido para a propriedade do usuário disabled é inválido. Precisa ser um valor booleano.'
'auth/invalid-display-name' : 'O valor fornecido para a propriedade do usuário displayName é inválido. Precisa ser uma string não vazia.'
'auth/invalid-dynamic-link-domain' : 'O domínio de link dinâmico fornecido não está configurado ou autorizado para o projeto atual.'
'auth/invalid-email' : 'O valor fornecido para a propriedade do usuário email é inválido. Precisa ser um endereço de e-mail de string.'
'auth/invalid-email-verified' : 'O valor fornecido para a propriedade do usuário emailVerified é inválido. Precisa ser um valor booleano.'
'auth/invalid-hash-algorithm' : 'O algoritmo de hash precisa corresponder a uma das strings na lista de algoritmos compatíveis.'
'auth/invalid-hash-block-size' : 'O tamanho do bloco de hash precisa ser um número válido.'
'auth/invalid-hash-derived-key-length' : 'O tamanho da chave derivada do hash precisa ser um número válido.'
'auth/invalid-hash-key' : 'A chave de hash precisa ter um buffer de byte válido.'
'auth/invalid-hash-memory-cost' : 'O custo da memória hash precisa ser um número válido.'
'auth/invalid-hash-parallelization' : 'O carregamento em paralelo do hash precisa ser um número válido.'
'auth/invalid-hash-rounds' : 'O arredondamento de hash precisa ser um número válido.'
'auth/invalid-hash-salt-separator' : 'O campo do separador de "salt" do algoritmo de geração de hash precisa ser um buffer de byte válido.'
'auth/invalid-id-token' : 'O token de código informado não é um token de código do Firebase válido.'
'auth/invalid-last-sign-in-time' : 'O último horário de login precisa ser um string de data UTC válido.'
'auth/invalid-page-token' : 'O token de próxima página fornecido em listUsers() é inválido. Precisa ser uma string não vazia válida.'
'auth/invalid-password' : 'O valor fornecido para a propriedade do usuário password é inválido. Precisa ser uma string com pelo menos seis caracteres.'
'auth/invalid-password-hash' : 'O hash da senha precisa ser um buffer de byte válido.'
'auth/invalid-password-salt' : 'O "salt" da senha precisa ser um buffer de byte válido'
'auth/invalid-phone-number' : 'O valor fornecido para phoneNumber é inválido. Ele precisa ser uma string de identificador compatível com o padrão E.164 não vazio.'
'auth/invalid-photo-url' : 'O valor fornecido para a propriedade do usuário photoURL é inválido. Precisa ser um URL de string.'
'auth/invalid-provider-data' : 'O providerData precisa ser uma matriz válida de objetos UserInfo.'
'auth/invalid-provider-id' : 'O providerId precisa ser um string de identificador de provedor compatível válido.'
'auth/invalid-oauth-responsetype' : 'Apenas um responseType do OAuth deve ser definido como verdadeiro.'
'auth/invalid-session-cookie-duration' : 'A duração do cookie da sessão precisa ser um número válido em milissegundos entre 5 minutos e 2 semanas.'
'auth/invalid-uid' : 'O uid fornecido precisa ser uma string não vazia com no máximo 128 caracteres.'
'auth/invalid-user-import' : 'O registro do usuário a ser importado é inválido.'
'auth/maximum-user-count-exceeded' : 'O número máximo permitido de usuários a serem importados foi excedido.'
'auth/missing-android-pkg-name' : 'Um nome de pacote Android precisa ser fornecido para a instalação do app Android.'
'auth/missing-continue-uri' : 'Um URL de confirmação válido precisa ser fornecido na solicitação.'
'auth/missing-hash-algorithm' : 'É necessário fornecer o algoritmo de geração de hash e seus parâmetros para importar usuários com hashes de senha.'
'auth/missing-ios-bundle-id' : 'A solicitação está sem o ID do pacote do iOS.'
'auth/missing-uid' : 'Um identificador uid é necessário para a operação atual.'
'auth/missing-oauth-client-secret' : 'A chave secreta do cliente de configuração do OAuth é necessária para ativar o fluxo de código do OIDC.'
'auth/operation-not-allowed' : 'O provedor de login fornecido está desativado para o projeto do Firebase. Ative-o na seção Método de login do Console do Firebase.'
'auth/phone-number-already-exists' : 'O phoneNumber fornecido já está sendo usado por um usuário existente. É necessário que cada usuário tenha um phoneNumber exclusivo.'
'auth/project-not-found' : 'Nenhum projeto do Firebase foi encontrado com a credencial usada para inicializar os Admin SDKs. Consulte Configurar um projeto do Firebase para ver a documentação sobre como gerar uma credencial para seu projeto e usá-la na autenticação dos Admin SDKs.'
'auth/reserved-claims' : 'Uma ou mais declarações de usuário personalizadas fornecidas para setCustomUserClaims() são reservadas. Por exemplo, não use as declarações específicas do OIDC, como sub, iat, iss, exp, aud, auth_time etc., como chaves para declarações personalizadas.'
'auth/session-cookie-expired' : 'O cookie da sessão do Firebase fornecido expirou.'
'auth/session-cookie-revoked' : 'O cookie da sessão do Firebase foi revogado.'
'auth/uid-already-exists' : 'O uid fornecido já está sendo usado por um usuário existente. É necessário que cada usuário tenha um uid exclusivo.'
'auth/unauthorized-continue-uri' : 'O domínio da URL de confirmação não está na lista de permissões. Acesse o Console do Firebase para colocar o domínio na lista de permissões.'
'auth/user-not-found' : 'Não há registro de usuário existente correspondente ao identificador fornecido.'
};