Autenticar com o 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 introdução.

  2. Ativar login por e-mail/senha:

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

Criar 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 inscrever usando o formulário de inscrição do seu aplicativo, conclua todas as novas etapas de validação de conta exigidas pelo aplicativo, como verificar se a senha da nova conta foi digitada corretamente e atende aos requisitos de complexidade.

Se a nova conta foi criada com sucesso, o usuário também está conectado. Se você estiver ouvindo as 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 Verificar o endereço de e-mail do usuário .

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

As etapas para fazer login de um usuário com uma 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, essa conta é armazenada como parte do projeto do Firebase e pode ser usada para identificar um usuário em todos os aplicativos do projeto, independentemente do método de login usado pelo usuário.

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

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

await FirebaseAuth.instance.signOut();