App mit Firebase verbinden
Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen, .
Firebase Authentication zur App hinzufügen
Fügen Sie in der Gradle-Datei Ihres Moduls (auf Anwendungsebene) (in der Regel
<project>/<app-module>/build.gradle.ktsoder<project>/<app-module>/build.gradle) die Abhängigkeit für die Firebase Authentication Bibliothek für Android hinzu. Wir empfehlen, die Firebase Android BoM zu verwenden, um die Bibliotheksversionierung zu steuern.dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.12.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 der Firebase Android BoM, haben Sie immer eine kompatible Version der Firebase Android-Bibliotheken in Ihrer App.
(Alternative) Firebase-Bibliotheksabhängigkeiten ohne Verwendung der BoM
Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.
Hinweis: Wenn Sie in Ihrer App mehrere Firebase-Bibliotheken verwenden, empfehlen wir dringend, die BoM zur Verwaltung der Bibliotheksversionen zu verwenden, um sicherzustellen, 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:24.0.1") }
Wenn Sie einen Authentifizierungsanbieter verwenden möchten, müssen Sie ihn in der Firebase Konsole aktivieren. Rufen Sie im Bereich „Firebase Authentication “ die Seite „Anmeldemethode“ auf, um die Anmeldung per E‑Mail/Passwort und alle anderen Identitätsanbieter zu aktivieren, die Sie für Ihre App verwenden möchten.
Optional: Prototyping und Tests mit Firebase Local Emulator Suite
Bevor wir uns ansehen, wie Nutzer in Ihrer App authentifiziert werden, stellen wir Ihnen eine Reihe von Tools vor, mit denen Sie die Authentication Funktionen prototypisieren und testen können: Firebase Local Emulator Suite. Wenn Sie sich zwischen verschiedenen Authentifizierungstechniken und ‑anbietern entscheiden, verschiedene Datenmodelle mit öffentlichen und privaten Daten mithilfe von Authentication und Firebase Security Rules testen oder Prototypen für die UI für die Anmeldung erstellen, kann es eine gute Idee sein, lokal zu arbeiten, ohne Live-Dienste bereitzustellen.
Ein Authentication Emulator ist Teil der Local Emulator Suite. Damit kann Ihre App mit emulierten Datenbankinhalten und ‑konfigurationen sowie optional mit den emulierten Projektressourcen (Funktionen, andere Datenbanken und Sicherheitsregeln) interagieren.
Die Verwendung des Authentication Emulators umfasst nur wenige Schritte:
- 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:startaus. - Verwenden Sie die Local Emulator Suite UI für interaktives Prototyping oder die Authentication Emulator-REST API für nicht interaktive Tests.
Eine detaillierte Anleitung finden Sie unter App mit dem Authentication Emulator verbinden. Weitere Informationen finden Sie in der Local Emulator Suite Einführung.
Sehen wir uns nun an, wie Sie Nutzer authentifizieren.
Aktuellen Authentifizierungsstatus prüfen
Deklarieren Sie eine Instanz von
FirebaseAuth.Kotlin
private lateinit var auth: FirebaseAuth
Java
private FirebaseAuth mAuth;
Initialisieren Sie in der Methode
onCreate()die InstanzFirebaseAuth.Kotlin
// 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
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 Methode createAccount, die eine E‑Mail-Adresse und ein Passwort akzeptiert, sie validiert und dann mit der
createUserWithEmailAndPassword
Methode einen neuen Nutzer erstellt.
Kotlin
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, mit dem sich neue Nutzer mit ihrer E‑Mail-Adresse und ihrem Passwort registrieren können. Rufen Sie diese neue Methode auf, wenn das Formular gesendet wird. Ein Beispiel finden Sie in unserem Schnellstartbeispiel.
Vorhandene Nutzer anmelden
Erstellen Sie eine neue Methode signIn, die eine E‑Mail-Adresse und ein Passwort akzeptiert, sie validiert und dann mit der
signInWithEmailAndPassword Methode einen Nutzer anmeldet.
Kotlin
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, mit dem sich Nutzer mit ihrer E‑Mail-Adresse und ihrem Passwort anmelden können. Rufen Sie diese neue Methode auf, wenn das Formular gesendet wird. Ein Beispiel finden Sie in unserem Schnellstartbeispiel.
Auf Nutzerinformationen zugreifen
Wenn sich ein Nutzer erfolgreich angemeldet hat, können Sie seine Kontodaten jederzeit mit der Methode getCurrentUser abrufen.
Kotlin
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 finden Sie in den folgenden Anleitungen: