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`:
- Ouça o áudio com a tela desligada
- Ganhe Certificado após a conclusão
- + de 5000 cursos para você explorar!
Baixar o aplicativo
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.