Autenticar com 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 com êxito. 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 primeiros passos .
  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 Firebase

  1. Quando os usuários fizerem login em seu aplicativo, envie suas credenciais de login (por exemplo, nome de usuário e senha) para seu 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("Unknown error.");
        }
    }
    

Próximos passos

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 aplicativos do seu projeto, independentemente do método de login usado pelo usuário.

Nos seus aplicativos, você pode obter as informações básicas do perfil do usuário no objeto User . 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 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 as credenciais do provedor de autenticação a uma conta de usuário existente.

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

await FirebaseAuth.instance.signOut();