Uma parte crucial de muitos aplicativos é a capacidade de criar contas de usuário e autenticar usuários existentes. O Firebase Authentication fornece uma solução completa e segura para isso e é fácil de integrar com o Flutter. Neste capítulo, vamos explorar como implementar a autenticação Firebase em um aplicativo Flutter.

Configuração do Firebase

Antes de começarmos, precisamos configurar o Firebase. Primeiro, crie um novo projeto no Firebase e siga as instruções para adicionar o Firebase ao seu aplicativo Flutter. Certifique-se de habilitar o método de autenticação por e-mail e senha nas configurações do Firebase Authentication.

Instalação do Pacote Flutter

Para usar o Firebase Authentication, precisamos instalar o pacote firebase_auth. Adicione a seguinte linha ao seu arquivo pubspec.yaml e execute 'flutter packages get' no terminal:

dependencies:
  firebase_auth: ^0.18.4

Criando a Interface do Usuário

Vamos criar uma interface de usuário simples com dois campos de texto para e-mail e senha e dois botões para login e registro. Para manter as coisas simples, não vamos lidar com a validação do formulário neste exemplo.

TextField(
  decoration: InputDecoration(
    labelText: 'Email',
  ),
  onChanged: (value) {
    email = value;
  },
),
TextField(
  decoration: InputDecoration(
    labelText: 'Password',
  ),
  obscureText: true,
  onChanged: (value) {
    password = value;
  },
),
RaisedButton(
  child: Text('Sign In'),
  onPressed: signIn,
),
RaisedButton(
  child: Text('Register'),
  onPressed: register,
),

Autenticação Firebase

Agora vamos implementar as funções signIn e register. Primeiro, precisamos criar uma nova instância de FirebaseAuth:

final FirebaseAuth auth = FirebaseAuth.instance;

A função signIn tenta autenticar um usuário com o e-mail e a senha fornecidos. Se a autenticação for bem-sucedida, o usuário será automaticamente registrado no aplicativo e poderá acessar recursos protegidos.

Future signIn() async {
  try {
    UserCredential userCredential = await auth.signInWithEmailAndPassword(
      email: email,
      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.');
    }
  }
}

A função register cria uma nova conta de usuário com o e-mail e a senha fornecidos. Se a criação da conta for bem-sucedida, o usuário será automaticamente registrado no aplicativo.

Future register() async {
  try {
    UserCredential userCredential = await auth.createUserWithEmailAndPassword(
      email: email,
      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);
  }
}

Conclusão

Com isso, você deve ter uma compreensão básica de como implementar a autenticação Firebase em um aplicativo Flutter. Existem muitos outros recursos que o Firebase Authentication oferece, como autenticação por telefone, Google Sign-In, Facebook Login e muito mais. Esperamos que este capítulo tenha fornecido uma base sólida para você explorar esses recursos por conta própria.

Agora responda o exercício sobre o conteúdo:

Qual é a função do Firebase Authentication em um aplicativo Flutter, conforme descrito no texto?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Autenticação Firebase em Flutter: Introdução ao Firebase 208

Próxima página do Ebook Gratuito:

Autenticação Firebase em Flutter: Introdução ao Firebase

Tempo estimado de leitura: 3 minutos

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.

+ de 9 milhões
de alunos

Certificado grátis e
válido em todo o Brasil

60 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, ebooks e audiobooks