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 à 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 de démarrage.

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

    • Dans la section Authentication (Authentification) de la console Firebase, ouvrez la page Sign in method (Méthode de connexion).
    • Sur la page Mode de connexion, activez l'option Connexion par e-mail/mot de passe. , puis cliquez sur Save (Enregistrer).

Créer un compte avec 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, procédez à toute validation de nouveau compte les étapes requises par votre application, comme vérifier que le mot de passe du nouveau compte a été correctement saisi et répond à vos exigences de complexité.

Si le compte a bien é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 effectuer les actions suivantes : Validez l'adresse e-mail de l'utilisateur.

Se connecter à un compte avec une adresse e-mail et un mot de passe

La procédure de connexion pour un utilisateur avec un mot de passe est similaire à la procédure pour en créant 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 dans votre projet Firebase. Vous pouvez l'utiliser pour identifier un utilisateur dans toutes les applications de votre quelle que soit la méthode de connexion utilisée par l'utilisateur.

Dans vos applications, vous pouvez obtenir les informations de base du profil de l'utilisateur à partir des User. Consultez la page Gérer les utilisateurs.

Dans Firebase Realtime Database et les règles de sécurité 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();