Autenticar com Firebase usando contas baseadas em senha no Flutter

Você pode usar o Firebase Authentication para permitir que seus usuários se autentiquem no Firebase usando endereços de e-mail e senhas.

Antes de você começar

  1. Se ainda não o fez, siga as etapas no Guia de primeiros passos .

  2. Ative o login por e-mail/senha:

    • Na seção Autenticação do console do Firebase, abra a página Método de login .
    • Na página Método de login , ative o método de login por e-mail/senha e clique em Salvar .

Crie uma conta baseada em senha

Para criar uma nova conta de usuário com senha, chame o método createUserWithEmailAndPassword() :

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

Normalmente, você faria isso na tela de inscrição do seu aplicativo. Quando um novo usuário se inscreve usando o formulário de inscrição do seu aplicativo, conclua todas as novas etapas de validação de conta exigidas pelo seu aplicativo, como verificar se a senha da nova conta foi digitada corretamente e atende aos seus requisitos de complexidade.

Se a nova conta tiver sido criada com sucesso, o usuário também estará conectado. Se você estiver ouvindo alterações no estado de autenticação , um novo evento será enviado aos seus ouvintes.

Como acompanhamento da criação de uma nova conta, você pode Verifique o endereço de e-mail do usuário .

Faça login em um usuário com um endereço de e-mail e senha

As etapas para fazer login de um usuário com senha são semelhantes às etapas para criar uma nova conta. Na tela de login do seu aplicativo, chame signInWithEmailAndPassword() :

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

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();