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.
FuturesignIn() 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.
Futureregister() 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.