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

Você pode integrar o Firebase Authentication a um sistema de autenticação personalizado ao modificar seu servidor de autenticação para produzir tokens específicos e assinados quando um usuário faz login. Seu app recebe e utiliza esse token para se autenticar no Firebase.

Antes de começar

  1. Siga as etapas no guia Primeiros passos, caso ainda não tenha feito isso.
  2. Instale e configure o SDK Admin do Firebase. Inicialize o SDK com as credenciais corretas para seu projeto do Firebase.

Autenticar no Firebase

  1. Quando os usuários fizerem login no seu app, envie as credenciais de login, como nome de usuário e senha, ao servidor de autenticação. O servidor verifica as credenciais e, se elas forem válidas, cria um token personalizado do Firebase e o envia de volta ao seu app.

  2. Depois de receber o token personalizado do servidor de autenticação, transmita-o para signInWithCustomToken() e faça o 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óximas etapas

Depois que um usuário cria uma nova conta, ela é armazenada como parte do seu projeto do Firebase e pode ser usada para identificar um usuário em todos os apps do projeto, seja qual for o método de login usado.

É possível receber as informações básicas de perfil do usuário do objeto User nos seus aplicativos. Consulte Gerenciar usuários.

Nas Regras de segurança do Firebase Realtime Database e do Cloud Storage, é possível receber o ID do usuário único conectado da variável auth e usar esse ID para controlar quais dados um usuário pode acessar.

Os usuários podem fazer login no app usando vários provedores de autenticação. Basta vincular as credenciais desses provedores a uma conta de usuário.

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

await FirebaseAuth.instance.signOut();