Erste Schritte mit Firebase Authentication auf Android-Geräten

App mit Firebase verbinden

Fügen Sie Ihrem Android-Projekt Firebase hinzu, falls noch nicht geschehen.

Firebase Authentication in Ihre App einbinden

  1. Fügen Sie in der Gradle-Datei Ihres Moduls (auf App-Ebene) (in der Regel <project>/<app-module>/build.gradle.kts oder <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 Versionsverwaltung der Bibliothek zu steuern.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:34.0.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 von BoM hinzufügen

    Wenn Sie die Firebase BoM nicht verwenden möchten, müssen Sie jede Firebase-Bibliotheksversion in der entsprechenden Abhängigkeitszeile angeben.

    Wenn Sie mehrere Firebase-Bibliotheken in Ihrer App verwenden, empfehlen wir dringend, die BoM zum Verwalten von 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.0")
    }

  2. Wenn Sie einen Authentifizierungsanbieter verwenden möchten, müssen Sie ihn in der Firebase-Konsole aktivieren. Rufen Sie im Abschnitt Firebase Authentication die Seite „Anmeldemethode“ auf, um die Anmeldung per E‑Mail-Adresse/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 Ihre App Nutzer authentifiziert, stellen wir Ihnen einige Tools vor, mit denen Sie die Authentication-Funktionalität prototypisieren und testen können: Firebase Local Emulator Suite. Wenn Sie sich zwischen Authentifizierungstechniken und ‑anbietern entscheiden, verschiedene Datenmodelle mit öffentlichen und privaten Daten mit Authentication und Firebase Security Rules ausprobieren oder Anmelde-UI-Designs prototypisieren, kann es eine gute Idee sein, lokal zu arbeiten, ohne Live-Dienste bereitzustellen.

Ein Authentication-Emulator ist Teil der Local Emulator Suite. Dadurch kann Ihre App mit emulierten Datenbankinhalten und ‑konfigurationen sowie optional mit Ihren emulierten Projektressourcen (Funktionen, anderen Datenbanken und Sicherheitsregeln) interagieren.

Die Verwendung des Authentication-Emulators umfasst nur wenige Schritte:

  1. Fügen Sie der Testkonfiguration Ihrer App eine Codezeile hinzu, um eine Verbindung zum Emulator herzustellen.
  2. Führen Sie firebase emulators:start im Stammverzeichnis Ihres lokalen Projektverzeichnisses aus.
  3. Verwenden Sie die Local Emulator Suite-Benutzeroberfläche 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

  1. Deklarieren Sie eine Instanz von FirebaseAuth.

    Kotlin

    private lateinit var auth: FirebaseAuth

    Java

    private FirebaseAuth mAuth;
  2. Initialisieren Sie in der Methode onCreate() die FirebaseAuth-Instanz.

    Kotlin

    // Initialize Firebase Auth
    auth = Firebase.auth

    Java

    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();
  3. 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 createAccount-Methode, die eine E-Mail-Adresse und ein Passwort entgegennimmt, sie validiert und dann mit der Methode createUserWithEmailAndPassword 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, und 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 signIn-Methode, die eine E‑Mail-Adresse und ein Passwort entgegennimmt, sie validiert und dann einen Nutzer mit der signInWithEmailAndPassword-Methode 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, und 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

Hier finden Sie Anleitungen zum Hinzufügen anderer Identitäts- und Authentifizierungsdienste: