Firebase error messages in different languages?

前端 未结 3 1865
北恋
北恋 2021-02-05 08:49

Showing the Firebase error messages (error.message) in the view results in english error descriptions (e.g. for Authentication errors, if user credetials contain errors).

<
3条回答
  •  死守一世寂寞
    2021-02-05 09:00

    This is impossible right now. What I recommend is to use the erros code (error.code) that is a unique error code and with that you can create something to bind this errors code to your own text/language. There is an available page at Firebase documentation that have a list of those errors code that might help you with that. Check out these links: https://firebase.google.com/docs/reference/js/firebase.auth.Auth https://firebase.google.com/docs/reference/js/firebase.auth.Error https://firebase.google.com/docs/auth/admin/errors?hl=en

    Edit: To solve this, I have translated it by myself (to PT-BR, my language) and implemented (in TypeScript) with these steps:

    I have created an interface to hold the indexed array of string:

    export interface MessagesIndex {
        [index: string]: string;
    }
    

    Then in some UI or Error Service, I've declared this variable as the Interface above:

    params = {
            'invalid-argument': 'Erro: Um argumento inválido foi fornecido.',
            'invalid-disabled-field': 'Erro: O valor fornecido para a 
              propriedade de usuário é inválido.',
    
             /* ADD HERE THE OTHERs IDs AND THE CORRESPONDING MESSAGEs */
    
        } as MessagesIndex;
    

    After that, I've created a function to print it by the given code (from Firebase), remember to split because the error.code atribute comes like "auth/error-id" and what we only need here is the "error-id", and if the error code is not found, then you can return some "Unknown error" and print the error.code, if you want:

       public printErrorByCode(code: string): string {
            code = code.split('/')[1];
            if (this.params[code]) {
                return (this.params[code]);
            } else {
                return ('Ocorreu algum erro desconhecido! \n Codigo erro: ' + code);
            }
        }
    

    It's not the best code but I hope it helps!

提交回复
热议问题