Autenticar com o Firebase usando contas baseadas em senhas no Flutter

É possível usar o Firebase Authentication para permitir que seus usuários se autentiquem com o Firebase usando endereços de e-mail e senhas.

Antes de começar

  1. Siga as etapas no guia Primeiros passos, caso ainda não tenha feito isso.

  2. Ative o login com 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 Login por e-mail/senha e clique em Salvar.

Criar uma conta baseada em senha

Para criar uma nova conta de usuário com uma 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, isso é feito na tela de inscrição do app. Quando um novo usuário se inscrever usando o formulário do seu app, conclua as etapas de validação de nova conta exigidas pelo app, como verificar se a senha da nova conta foi digitada corretamente e atende aos requisitos de complexidade.

Se uma nova conta foi criada, isso significa que o usuário fez login. Se você estiver ouvindo as alterações no estado de autenticação, um novo evento será enviado aos listeners.

Como acompanhamento da criação de uma nova conta, é possível verificar o endereço de e-mail do usuário.

Conectar um usuário com endereço de e-mail e senha

As etapas para um usuário fazer login com uma senha são semelhantes às de criação de uma nova conta. Na tela de login do app, 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ó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();