Confira as novidades do Firebase anunciadas no Google I/O 2022. Saiba mais

Autenticar com o Firebase usando um sistema de autenticação personalizado

Você pode integrar o Firebase Authentication a um sistema de autenticação personalizado modificando seu servidor de autenticação para produzir tokens assinados personalizados quando um usuário fizer login. Seu aplicativo recebe esse token e o usa para autenticar com o Firebase.

Antes de você começar

  1. Se ainda não o fez , siga as etapas no guia de introdução.
  2. Instale e configure o SDK Admin do Firebase . Certifique-se de inicializar o SDK com as credenciais corretas para seu projeto do Firebase.

Autenticar com o Firebase

  1. Quando os usuários fizerem login no seu aplicativo, envie as credenciais de login (por exemplo, nome de usuário e senha) para o servidor de autenticação. Seu servidor verifica as credenciais e, se forem válidas, cria um token personalizado do Firebase e envia o token de volta ao seu aplicativo.

  2. Depois de receber o token personalizado do seu servidor de autenticação, passe-o para signInWithCustomToken() para fazer login do usuário:

    try {
        final userCredential =
            await FirebaseAuth.instance.signInWithCustomToken(token);
        print("Sign-in successful.");
    } on FirebaseAuthException catch (e) {
        switch (e.code) {
            case "invalid-custom-token":
                print("The supplied token is not a Firebase custom auth token.");
                break;
            case "custom-token-mismatch":
                print("The supplied token is for a different Firebase project.");
                break;
            default:
                print("Unkown error.");
        }
    }
    

Próximos passos

Depois que um usuário cria uma nova conta, essa conta é armazenada como parte do projeto do Firebase e pode ser usada para identificar um usuário em todos os aplicativos do projeto, independentemente do método de login usado pelo usuário.

Em seus aplicativos, você pode obter as informações básicas do perfil do User no objeto Usuário. Consulte Gerenciar usuários .

Nas regras de segurança do Firebase Realtime Database e do Cloud Storage, você pode obter o ID de usuário exclusivo do usuário conectado na variável de auth e usá-lo para controlar quais dados um usuário pode acessar.

Você pode permitir que os usuários façam login no seu aplicativo usando vários provedores de autenticação vinculando credenciais do provedor de autenticação ) a uma conta de usuário existente.

Para desconectar um usuário, chame signOut() :

await FirebaseAuth.instance.signOut();