Mit passwortbasierten Konten in Flutter bei Firebase authentifizieren

Mit Firebase Authentication können Sie Nutzer mit E-Mail-Adressen und Passwörtern authentifizieren.

Hinweis

  1. Falls noch nicht geschehen, folgen Sie der Anleitung unter Erste Schritte.

  2. So aktivieren Sie die Anmeldung per E‑Mail-Adresse/Passwort:

    • Öffnen Sie in der Firebase Console im Bereich Authentifizierung die Seite Anmeldemethode.
    • Aktivieren Sie auf der Seite Anmeldemethode die Methode Anmeldung mit E‑Mail-Adresse/Passwort und klicken Sie auf Speichern.

Passwortbasiertes Konto erstellen

Rufen Sie die Methode createUserWithEmailAndPassword() auf, um ein neues Nutzerkonto mit einem Passwort zu erstellen:

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);
}

Normalerweise erfolgt dies über den Registrierungsbildschirm Ihrer App. Wenn sich ein neuer Nutzer über das Registrierungsformular Ihrer App registriert, führen Sie alle Schritte zur Validierung des neuen Kontos aus, die für Ihre App erforderlich sind, z. B. die Überprüfung, ob das Passwort des neuen Kontos korrekt eingegeben wurde und Ihren Komplexitätsanforderungen entspricht.

Wenn das neue Konto erfolgreich erstellt wurde, ist der Nutzer auch angemeldet. Wenn Sie auf Änderungen des Authentifizierungsstatus warten, wird ein neues Ereignis an Ihre Listener gesendet.

Nachdem Sie ein neues Konto erstellt haben, können Sie die E‑Mail-Adresse des Nutzers bestätigen.

Nutzer mit E‑Mail-Adresse und Passwort anmelden

Die Schritte zum Anmelden eines Nutzers mit einem Passwort ähneln denen zum Erstellen eines neuen Kontos. Rufen Sie auf dem Anmeldebildschirm Ihrer App signInWithEmailAndPassword() auf:

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.');
  }
}

Nächste Schritte

Wenn ein Nutzer ein neues Konto erstellt, wird dieses Konto in Ihrem Firebase-Projekt gespeichert. Es kann verwendet werden, um einen Nutzer in allen Apps in Ihrem Projekt zu identifizieren, unabhängig davon, welche Anmeldemethode der Nutzer verwendet hat.

In Ihren Apps können Sie die grundlegenden Profilinformationen des Nutzers aus dem User-Objekt abrufen. Weitere Informationen finden Sie unter Nutzer verwalten.

In Ihren Firebase Realtime Database- und Cloud Storage-Sicherheitsregeln können Sie die eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen auth abrufen und damit steuern, auf welche Daten ein Nutzer zugreifen kann.

Sie können Nutzern erlauben, sich mit mehreren Authentifizierungsanbietern in Ihrer App anzumelden, indem Sie Anmeldedaten des Authentifizierungsanbieters mit einem vorhandenen Nutzerkonto verknüpfen.

Rufen Sie signOut() auf, um einen Nutzer abzumelden:

await FirebaseAuth.instance.signOut();