S'authentifier avec Firebase à l'aide de comptes basés sur des mots de passe sur Flutter

Vous pouvez utiliser Firebase Authentication pour permettre à vos utilisateurs de s'authentifier auprès de Firebase à l'aide d'adresses e-mail et de mots de passe.

Avant de commencer

  1. Si ce n'est pas déjà fait, suivez les étapes du guide Premiers pas.

  2. Activez la connexion par e-mail/mot de passe :

    • Dans la section Authentification de la console Firebase, ouvrez la page Méthode de connexion.
    • Sur la page Mode de connexion, activez la méthode de connexion Adresse e-mail/Mot de passe, puis cliquez sur 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 général, vous effectuez cette opération depuis l'écran d'inscription de votre application. Lorsqu'un nouvel utilisateur s'inscrit à l'aide du formulaire d'inscription de votre application, effectuez toutes les étapes de validation de nouveau 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 bien été créé, l'utilisateur est également connecté. Si vous écoutez les modifications de l'état de l'authentification, un nouvel événement sera 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. Depuis 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 l'identifier 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 profil de base de l'utilisateur à partir de l'objet User. Consultez Gérer les utilisateurs.

Dans vos règles de sécurité Firebase Realtime Database et 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 les identifiants du fournisseur d'authentification à un compte utilisateur existant.

Pour déconnecter un utilisateur, appelez signOut() :

await FirebaseAuth.instance.signOut();