Sie können Firebase Authentication verwenden, damit sich Ihre Nutzer authentifizieren können mit Firebase verwendet seine E-Mail-Adressen und Passwörter sowie zur Verwaltung der passwortbasierte Konten.
Hinweis
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.
- Wenn Sie Ihre App noch nicht mit Ihrem Firebase-Projekt verknüpft haben, tun Sie dies in der Firebase Console.
- Anmeldung mit E-Mail-Adresse und Passwort aktivieren:
- Öffne in der Firebase Console den Bereich Auth.
- Aktivieren Sie auf dem Tab Anmeldemethode die Anmeldemethode E-Mail-Adresse/Passwort und klicken Sie auf Speichern.
In der Gradle-Datei des Moduls (auf App-Ebene) (normalerweise
<project>/<app-module>/build.gradle.kts
oder<project>/<app-module>/build.gradle
) Fügen Sie die Abhängigkeit für die Firebase Authentication-Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM-Taste zu verwenden, um die Versionierung der Bibliothek zu steuern.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.4.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth") }
Mit dem Firebase Android BoM Ihre App verwendet immer kompatible Versionen der Firebase Android Libraries.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne BoM hinzufügen
Wenn Sie die Firebase BoM nicht verwenden, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen wir Ihnen dringend, die Bibliotheksversionen mithilfe der BoM zu verwalten. So wird sichergestellt, dass alle Versionen kompatibel sind.
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:23.0.0") }
Passwortbasiertes Konto erstellen
Führen Sie die folgenden Schritte aus, um ein neues Nutzerkonto mit Passwort zu erstellen: die Anmeldeaktivitäten Ihrer App:
- Über die
onCreate
-Methode Ihrer Anmeldeaktivität Instanz desFirebaseAuth
-Objekts:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- Prüfen Sie beim Initialisieren Ihrer Aktivität, ob der Nutzer derzeit angemeldet ist:
Kotlin+KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser if (currentUser != null) { reload() } }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
- Wenn sich ein neuer Nutzer über das Anmeldeformular Ihrer App registriert, führen Sie alle erforderlichen Schritte zur Kontobestätigung durch, die für Ihre App erforderlich sind. Dazu gehört beispielsweise die Überprüfung, ob das Passwort für das neue Konto korrekt eingegeben wurde und den Anforderungen an die Komplexität entspricht.
- Erstelle ein neues Konto, indem du die E-Mail-Adresse und das Passwort des neuen Nutzers an
createUserWithEmailAndPassword
weitergibst:Kotlin+KTX
auth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "createUserWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.createUserWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "createUserWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "createUserWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
getCurrentUser
verwenden, um die Kontodaten des Nutzers abzurufen.
Nutzer mit E-Mail-Adresse und Passwort anmelden
Die Schritte zum Anmelden eines Nutzers mit einem Passwort ähneln denen zum Erstellen eines neuen Kontos. Gehen Sie bei den Anmeldeaktivitäten Ihrer App so vor:
- Rufen Sie in der
onCreate
-Methode Ihrer Anmeldeaktivität die freigegebene Instanz desFirebaseAuth
-Objekts ab:Kotlin+KTX
private lateinit var auth: FirebaseAuth // ... // Initialize Firebase Auth auth = Firebase.auth
Java
private FirebaseAuth mAuth; // ... // Initialize Firebase Auth mAuth = FirebaseAuth.getInstance();
- Prüfen Sie beim Initialisieren Ihrer Aktivität, ob der Nutzer derzeit angemeldet ist:
Kotlin+KTX
public override fun onStart() { super.onStart() // Check if user is signed in (non-null) and update UI accordingly. val currentUser = auth.currentUser if (currentUser != null) { reload() } }
Java
@Override public void onStart() { super.onStart(); // Check if user is signed in (non-null) and update UI accordingly. FirebaseUser currentUser = mAuth.getCurrentUser(); if(currentUser != null){ reload(); } }
- Wenn sich ein Nutzer in Ihrer App anmeldet, geben Sie seine E-Mail-Adresse und
Passwort zu
signInWithEmailAndPassword
:Kotlin+KTX
auth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this) { task -> if (task.isSuccessful) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success") val user = auth.currentUser updateUI(user) } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.exception) Toast.makeText( baseContext, "Authentication failed.", Toast.LENGTH_SHORT, ).show() updateUI(null) } }
Java
mAuth.signInWithEmailAndPassword(email, password) .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // Sign in success, update UI with the signed-in user's information Log.d(TAG, "signInWithEmail:success"); FirebaseUser user = mAuth.getCurrentUser(); updateUI(user); } else { // If sign in fails, display a message to the user. Log.w(TAG, "signInWithEmail:failure", task.getException()); Toast.makeText(EmailPasswordActivity.this, "Authentication failed.", Toast.LENGTH_SHORT).show(); updateUI(null); } } });
FirebaseUser
verwenden, um fortzufahren.
Empfohlen: Passwortrichtlinie festlegen
Sie können die Kontosicherheit verbessern, indem Sie Anforderungen an die Komplexität von Passwörtern erzwingen.
Wenn Sie eine Passwortrichtlinie für Ihr Projekt konfigurieren möchten, öffnen Sie in der Firebase-Konsole auf der Seite „Authentifizierungseinstellungen“ den Tab Passwortrichtlinie:
Authentifizierungseinstellungen
Die Passwortrichtlinien von Firebase Authentication unterstützen die folgenden Passwortanforderungen:
Kleinbuchstaben erforderlich
Großbuchstaben erforderlich
Numerisches Zeichen erforderlich
Nicht alphanumerisches Zeichen erforderlich
Die folgenden Zeichen erfüllen die Anforderung an nicht alphanumerische Zeichen:
^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~
Mindestlänge des Passworts (6 bis 30 Zeichen; Standard: 6)
Maximale Passwortlänge (maximale Länge: 4.096 Zeichen)
Sie können die Erzwingung von Passwortrichtlinien in zwei Modi aktivieren:
Erforderlich: Anmeldeversuche schlagen fehl, bis der Nutzer ein Passwort verwendet, das Ihrer Richtlinie entspricht.
Benachrichtigen: Nutzer dürfen sich mit einem nicht konformen Passwort anmelden. Wenn Sie diesen Modus verwenden, sollten Sie prüfen, ob das Passwort des Nutzers auf der Clientseite der Richtlinie entspricht, und ihn auffordern, sein Passwort zu aktualisieren, falls dies nicht der Fall ist.
Neue Nutzer müssen immer ein Passwort wählen, das Ihren Richtlinien entspricht.
Wenn Sie aktive Nutzer haben, empfehlen wir, den Modus „Erforderlich“ nur zu aktivieren, wenn Sie den Zugriff für Nutzer blockieren möchten, deren Passwörter nicht Ihren Richtlinien entsprechen. Verwenden Sie stattdessen den Benachrichtigungsmodus. Nutzer können sich dann mit ihrem aktuellen und sie über die Anforderungen informieren, die ihr Passwort nicht erfüllt.
Empfohlen: Schutz vor E-Mail-Enumeration aktivieren
Einige Firebase Authentication-Methoden, die E-Mail-Adressen als Parameter annehmen Fehler, wenn die E-Mail-Adresse nicht registriert ist, wenn sie registriert werden muss (z. B. bei der Anmeldung mit einer E-Mail-Adresse und einem Passwort) oder registrierte Wenn sie nicht verwendet werden muss (z. B. beim Ändern der E-Mail-Adresse eines Nutzers). Dies kann hilfreich sein, um Nutzern spezifische Abhilfemaßnahmen zu empfehlen, von böswilligen Akteuren missbraucht werden, um die von Ihrem Nutzenden.
Um dieses Risiko zu minimieren, empfehlen wir Ihnen, den Schutz vor E-Mail-Aufzählung für Ihr Projekt mit dem Google Cloud-Tool gcloud
zu aktivieren. Wenn Sie diese Option aktivieren,
Durch diese Funktion ändert sich das Verhalten der Fehlerberichte von Firebase Authentication: App muss installiert sein
nicht auf die spezifischeren Fehler.
Nächste Schritte
Nachdem sich ein Nutzer zum ersten Mal angemeldet hat, wird ein neues Nutzerkonto erstellt und mit den Anmeldedaten verknüpft, d. h. mit dem Nutzernamen und Passwort, der Telefonnummer oder den Informationen zum Authentifizierungsanbieter, mit denen sich der Nutzer angemeldet hat. Diese neue -Konto wird als Teil Ihres Firebase-Projekts gespeichert und kann verwendet werden, um in jeder App in Ihrem Projekt einen Nutzer erreichen, unabhängig davon, wie er sich anmeldet.
-
In Ihren Apps können Sie die grundlegenden Profilinformationen des Nutzers über das
FirebaseUser
-Objekt abrufen. Weitere Informationen finden Sie unter Nutzer verwalten. In Firebase Realtime Database und Cloud Storage Sicherheitsregeln können Sie die eindeutige Nutzer-ID des angemeldeten Nutzers aus der Variablen
auth
abrufen, und steuern, auf welche Daten ein Nutzer zugreifen kann.
Sie können Nutzern erlauben, sich mit Mehrfachauthentifizierung in Ihrer App anzumelden indem Sie die Anmeldedaten des Authentifizierungsanbieters mit einem eines bestehenden Nutzerkontos.
Wenn Sie einen Nutzer abmelden möchten, rufen Sie signOut
auf:
Kotlin+KTX
Firebase.auth.signOut()
Java
FirebaseAuth.getInstance().signOut();