Vous pouvez utiliser Firebase Authentication pour permettre à vos utilisateurs de s'authentifier auprès de Firebase à l'aide d'une adresse e-mail et d'un mot de passe.
Avant de commencer
Si ce n'est pas déjà fait, suivez les étapes du guide Premiers pas.
Activez l'adresse e-mail/le mot de passe comme fournisseur de connexion pour votre projet Firebase :
Dans la console Firebase, accédez à Security > Authentication.
Dans l'onglet Sign in method (Méthode de connexion), activez le fournisseur de connexion Email/Password (Adresse e-mail/Mot de passe).
Cliquez sur Save (Enregistrer).
Créer un compte basé sur un mot de passe
Pour créer un compte utilisateur avec un mot de passe, appelez la méthode createUserWithEmailAndPassword() :
try {
final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
email: emailAddress,
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);
}
En règle générale, vous effectuez cette opération à partir de l'écran d'inscription de votre application. Lorsqu'un nouvel utilisateur s'inscrit à l'aide du formulaire d'inscription de votre application, suivez toutes les étapes de validation de compte requises par votre application, par exemple en vérifiant que le mot de passe du nouveau compte a été saisi correctement et qu'il répond à vos exigences de complexité.
Si le nouveau compte a été créé, l'utilisateur est également connecté. Si vous écoutez les modifications de l'état d'authentification, un nouvel événement est envoyé à vos écouteurs.
Après avoir créé un compte, vous pouvez valider l'adresse e-mail de l'utilisateur.
Connecter un utilisateur avec une adresse e-mail et un mot de passe
La procédure de connexion d'un utilisateur avec un mot de passe est semblable à celle de création d'un compte. Dans l'écran de connexion de votre application, appelez signInWithEmailAndPassword() :
try {
final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
email: emailAddress,
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.');
}
}
Étapes suivantes
Lorsqu'un utilisateur crée un compte, celui-ci est stocké dans votre projet Firebase et peut être utilisé pour identifier un utilisateur dans toutes les applications de votre projet, quelle que soit la méthode de connexion utilisée.
Dans vos applications, vous pouvez obtenir les informations de base du profil de l'utilisateur à partir de l'objet User. Consultez la section Gérer les utilisateurs.
Dans les règles de sécurité de votre base de données Firebase Realtime Database et de Cloud Storage, vous pouvez obtenir l'ID utilisateur unique de l'utilisateur connecté à partir de la variable auth et l'utiliser pour contrôler les données auxquelles un utilisateur peut accéder.
Vous pouvez autoriser les utilisateurs à se connecter à votre application à l'aide de plusieurs fournisseurs d'authentification en associant des identifiants de fournisseur d'authentification) à un compte utilisateur existant.
Pour déconnecter un utilisateur, appelez signOut() :
await FirebaseAuth.instance.signOut();