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.