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

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

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

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

    • Dans la section Authentication (Authentification) de la console Firebase, ouvrez la page Méthode de connexion.
    • Sur la page Méthode de connexion , activez la méthode Connexion par 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 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

Les étapes à suivre pour connecter un utilisateur avec un mot de passe sont semblables à celles à suivre pour créer 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 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 profil de base 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();