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
- Siga as etapas no guia Primeiros passos, caso ainda não tenha feito isso.
- Instale e configure o SDK Admin do Firebase. Inicialize o SDK com as credenciais corretas para seu projeto do Firebase.
Autenticar no Firebase
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.
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();