26.7 Autenticação Firebase em Flutter: Gerenciamento de usuários
A autenticação é uma parte essencial de qualquer aplicativo moderno. O Firebase Authentication fornece um sistema completo de autenticação que suporta autenticação por email e senha, autenticação por telefone, autenticação por Google, Facebook, Twitter e GitHub, e muito mais. Com o Firebase Authentication, você pode rapidamente e facilmente adicionar funcionalidades de autenticação ao seu aplicativo Flutter.
Configurando o Firebase Authentication
Para começar a usar o Firebase Authentication, você precisa primeiro criar um projeto Firebase e conectar seu aplicativo Flutter a esse projeto. Depois de ter feito isso, você pode adicionar a dependência do Firebase Authentication ao seu arquivo `pubspec.yaml`:
dependencies: firebase_auth: ^0.18.1+1
Depois de adicionar a dependência, você precisa importar o pacote Firebase Authentication no seu código:
import 'package:firebase_auth/firebase_auth.dart';
Autenticação por Email e Senha
A autenticação por email e senha é a forma mais básica de autenticação. Com o Firebase Authentication, você pode criar um novo usuário com um endereço de email e uma senha usando o método `createUserWithEmailAndPassword`:
FirebaseAuth auth = FirebaseAuth.instance; try { UserCredential userCredential = await auth.createUserWithEmailAndPassword( email: "example@example.com", password: "SuperSecretPassword!" ); } 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); }
Depois de criar um usuário, você pode autenticar esse usuário usando o método `signInWithEmailAndPassword`:
try { UserCredential userCredential = await auth.signInWithEmailAndPassword( email: "example@example.com", password: "SuperSecretPassword!" ); } 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.'); } } catch (e) { print(e); }
Gerenciando usuários
O Firebase Authentication fornece várias maneiras de gerenciar usuários. Por exemplo, você pode obter o usuário atualmente autenticado usando a propriedade `currentUser`:
User user = auth.currentUser;
Você também pode ouvir as alterações no usuário atualmente autenticado usando o stream `authStateChanges`:
auth.authStateChanges().listen((User user) { if (user == null) { print('User is currently signed out!'); } else { print('User is signed in!'); } });
Além disso, você pode fazer logout do usuário atual usando o método `signOut`:
await auth.signOut();
Conclusão
Com o Firebase Authentication, você pode adicionar facilmente funcionalidades de autenticação ao seu aplicativo Flutter. Seja autenticação por email e senha, autenticação por telefone, autenticação por Google, Facebook, Twitter ou GitHub, o Firebase Authentication tem você coberto.
Além disso, o Firebase Authentication fornece várias maneiras de gerenciar usuários. Você pode obter o usuário atualmente autenticado, ouvir as alterações no usuário atualmente autenticado e fazer logout do usuário atual. Isso torna o gerenciamento de usuários uma brisa.
Em resumo, o Firebase Authentication é uma excelente escolha para adicionar funcionalidades de autenticação ao seu aplicativo Flutter.