App mit Firebase verbinden
Falls noch nicht geschehen, Fügen Sie Ihrem Android-Projekt Firebase hinzu.
Firebase Authentication zu deiner App hinzufügen
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, Bibliotheksversionen mit der BoM zu verwalten. Dadurch wird sichergestellt, dass alle Versionen kompatibel.
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") }
Wenn Sie einen Authentifizierungsanbieter verwenden möchten, müssen Sie ihn in der Firebase Console aktivieren. Rufen Sie in der Firebase Authentication die Seite „Anmeldemethode“ auf. um die Anmeldung mit E-Mail-Adresse und Passwort sowie andere Identitätsanbieter zu aktivieren die Sie für Ihre App brauchen.
Optional: Prototyp erstellen und mit Firebase Local Emulator Suite testen
Bevor wir uns damit befassen, wie Nutzer in Ihrer App authentifiziert werden, stellen wir Ihnen einige Tools vor, mit denen Sie Authentication-Funktionen prototypisieren und testen können: Firebase Local Emulator Suite. Wenn Sie zwischen Authentifizierungstechniken und Anbietern, die verschiedene Datenmodelle mit öffentlichen und privaten Daten Authentication und Firebase Security Rules verwenden oder einen Prototyp der Benutzeroberfläche für die Anmeldung erstellen, ohne Live-Dienste lokal zu arbeiten, kann eine gute Idee sein.
Ein Authentication-Emulator ist Teil des Local Emulator Suite. Er ermöglicht es Ihrer App, mit emulierten Datenbankinhalten und ‑konfigurationen sowie optional mit Ihren emulierten Projektressourcen (Funktionen, anderen Datenbanken und Sicherheitsregeln) zu interagieren.
Zur Verwendung des Authentication-Emulators sind nur wenige Schritte erforderlich:
- Fügen Sie der Testkonfiguration Ihrer App eine Codezeile hinzu, um eine Verbindung zum Emulator herzustellen.
- Führen Sie im Stammverzeichnis Ihres lokalen Projektverzeichnisses
firebase emulators:start
aus. - Die Local Emulator Suite-UI für interaktives Prototyping oder die Authentication-Emulator-REST-API für nicht interaktive Tests.
Eine ausführliche Anleitung finden Sie unter App mit dem Authentication-Emulator verbinden. Weitere Informationen findest du in der Einführung zu Local Emulator Suite.
Fahren wir nun mit der Authentifizierung von Nutzern fort.
Aktuellen Authentifizierungsstatus prüfen
Deklarieren Sie eine Instanz von
FirebaseAuth
.Kotlin+KTX
private lateinit var auth: FirebaseAuth
Java
private FirebaseAuth mAuth;
Initialisieren Sie in der Methode
onCreate()
die InstanzFirebaseAuth
.Kotlin+KTX
// Initialize Firebase Auth auth = Firebase.auth
Java
// 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(); } }
Neue Nutzer registrieren
Erstellen Sie eine neue createAccount
-Methode, die eine E-Mail-Adresse und ein Passwort entgegennimmt, diese validiert und dann mit der Methode createUserWithEmailAndPassword
einen neuen Nutzer erstellt.
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); } } });
Fügen Sie ein Formular hinzu, um neue Nutzer mit ihrer E-Mail-Adresse und ihrem Passwort zu registrieren, und rufen Sie diese neue Methode auf, wenn das Formular gesendet wird. Ein Beispiel finden Sie in unserer Schnellstartanleitung.
Vorhandene Nutzer anmelden
Erstelle eine neue signIn
-Methode, die eine E-Mail-Adresse und ein Passwort entgegennimmt, diese validiert und dann einen Nutzer mit der Methode signInWithEmailAndPassword
anmeldet.
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); } } });
Fügen Sie ein Formular hinzu, um Nutzer mit ihrer E-Mail-Adresse und ihrem Passwort anzumelden, und rufen Sie dieses Formular auf wenn sie gesendet wird. Ein Beispiel finden Sie in unserer Schnellstartanleitung.
Auf Nutzerinformationen zugreifen
Wenn sich ein Nutzer erfolgreich angemeldet hat, kannst du seine Kontodaten jederzeit mit der getCurrentUser
-Methode abrufen.
Kotlin+KTX
val user = Firebase.auth.currentUser user?.let { // Name, email address, and profile photo Url val name = it.displayName val email = it.email val photoUrl = it.photoUrl // Check if user's email is verified val emailVerified = it.isEmailVerified // The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use // FirebaseUser.getIdToken() instead. val uid = it.uid }
Java
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); if (user != null) { // Name, email address, and profile photo Url String name = user.getDisplayName(); String email = user.getEmail(); Uri photoUrl = user.getPhotoUrl(); // Check if user's email is verified boolean emailVerified = user.isEmailVerified(); // The user's ID, unique to the Firebase project. Do NOT use this value to // authenticate with your backend server, if you have one. Use // FirebaseUser.getIdToken() instead. String uid = user.getUid(); }
Nächste Schritte
Weitere Informationen zum Hinzufügen anderer Identitäts- und Authentifizierungsdienste: