0Pricing
Android Academy · Lektion

Firebase Authentication

Anmeldung per E-Mail und Google

Firebase Authentication ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Warum Firebase Auth?

Firebase Authentication übernimmt die aufwendigen Aufgaben bei der Anmeldung: sichere Passwortspeicherung, Token-Erneuerung, Kontowiederherstellung und zahlreiche Anbieter (E-Mail, Google, Apple, Telefon und anonym).

Statt eigene Login-Server zu entwickeln, rufen Sie einige APIs auf und erhalten einen verifizierten FirebaseUser. In dieser Lektion implementieren Sie die E-Mail-/Passwort-Anmeldung und die Google-Anmeldung.

Anmeldemethoden aktivieren

Aktivieren Sie vor dem Schreiben des Codes die gewünschten Anbieter in der Firebase Console:

  • Gehen Sie zu Authentication → Sign-in method.
  • Aktivieren Sie Email/Password.
  • Aktivieren Sie Google (und wählen Sie eine Support-E-Mail-Adresse aus).

Für die Google-Anmeldung müssen Sie außerdem den SHA-1-Fingerabdruck Ihrer App in den Projekteinstellungen hinzufügen. Andernfalls schlägt die Anmeldung mit einem Entwicklerfehler fehl.

Die FirebaseAuth-Instanz abrufen

Der Einstiegspunkt ist Firebase.auth. Darüber können Sie auf die aktuelle Nutzerin bzw. den aktuellen Nutzer sowie auf Methoden zum Erstellen von Konten, An- und Abmelden zugreifen.

auth.currentUser ist null, wenn niemand angemeldet ist – so können Sie beim Start schnell entscheiden, welcher Bildschirm angezeigt werden soll.

import com.google.firebase.Firebase
import com.google.firebase.auth.auth

val auth = Firebase.auth

fun isLoggedIn(): Boolean {
    return auth.currentUser != null
}

Konto erstellen

Registrieren Sie einen neuen Benutzer mit createUserWithEmailAndPassword. Die Methode gibt eine Task zurück, aber in Coroutine-Code können Sie sie mit await() abwarten (aus kotlinx-coroutines-play-services).

Bei Erfolg wird der Benutzer sofort angemeldet.

import com.google.firebase.Firebase
import com.google.firebase.auth.auth
import kotlinx.coroutines.tasks.await

suspend fun register(email: String, password: String): Result<Unit> {
    return try {
        Firebase.auth
            .createUserWithEmailAndPassword(email, password)
            .await()
        Result.success(Unit)
    } catch (e: Exception) {
        Result.failure(e)
    }
}

Mit E-Mail-Adresse anmelden

Die Anmeldung eines bestehenden Benutzers erfolgt mit signInWithEmailAndPassword. Der Aufbau entspricht der Registrierung.

Wenn Sie den Aufruf in try/catch einschließen, können Sie klare Fehlermeldungen anzeigen — etwa bei einem falschen Passwort, einem nicht vorhandenen Benutzer oder einer ungültig formatierten E-Mail-Adresse.

import com.google.firebase.Firebase
import com.google.firebase.auth.auth
import com.google.firebase.auth.FirebaseUser
import kotlinx.coroutines.tasks.await

suspend fun login(email: String, password: String): FirebaseUser? {
    val result = Firebase.auth
        .signInWithEmailAndPassword(email, password)
        .await()
    return result.user
}

Ein Anmeldebildschirm in Compose

Integrieren Sie die Authentifizierung in einen kleinen Compose-Bildschirm. Halten Sie E-Mail-Adresse und Passwort im State, rufen Sie die suspend-Funktionen aus einem Coroutine-Scope auf und zeigen Sie Fehler an.

@Composable
fun LoginScreen(onLoggedIn: () -> Unit) {
    var email by remember { mutableStateOf("") }
    var password by remember { mutableStateOf("") }
    var error by remember { mutableStateOf<String?>(null) }
    val scope = rememberCoroutineScope()

    Column(Modifier.padding(16.dp)) {
        TextField(email, { email = it }, label = { Text("Email") })
        TextField(password, { password = it }, label = { Text("Password") })
        error?.let { Text(it, color = Color.Red) }
        Button(onClick = {
            scope.launch {
                val user = login(email, password)
                if (user != null) onLoggedIn() else error = "Login failed"
            }
        }) { Text("Sign in") }
    }
}

Den aktuellen Benutzer auslesen

Ein FirebaseUser enthält Identitätsdaten: uid (eine stabile eindeutige ID), email, displayName und photoUrl.

Verwenden Sie uid als Schlüssel, wenn Sie die Daten dieses Benutzers in Firestore speichern — die ID ist garantiert eindeutig und unveränderlich.

import com.google.firebase.Firebase
import com.google.firebase.auth.auth

fun describeUser() {
    val user = Firebase.auth.currentUser ?: return
    println("UID: ${user.uid}")
    println("Email: ${user.email}")
    println("Name: ${user.displayName ?: "(none)"}")
}

Den Authentifizierungsstatus beobachten

Der Authentifizierungsstatus kann sich jederzeit ändern (Anmeldung, Abmeldung, Token-Aktualisierung). Registrieren Sie einen AuthStateListener, um darauf zu reagieren, statt regelmäßig abzufragen.

Damit können Sie automatisch zwischen einem Anmeldebildschirm und einem Startbildschirm navigieren.

import com.google.firebase.Firebase
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.auth

val listener = FirebaseAuth.AuthStateListener { auth ->
    val user = auth.currentUser
    if (user == null) {
        println("Signed out -> show login")
    } else {
        println("Signed in as ${user.email}")
    }
}

// Attach and detach with lifecycle
Firebase.auth.addAuthStateListener(listener)
// Firebase.auth.removeAuthStateListener(listener)

Google-Anmeldung mit Credential Manager

Die moderne Methode für die Google-Anmeldung ist die Credential Manager-API. Sie fordern ein Google-ID-Token an und tauschen es anschließend gegen eine Firebase-Anmeldedaten-Instanz aus.

Der entscheidende Schritt besteht darin, aus dem zurückgegebenen ID-Token eine GoogleAuthProvider-Anmeldedaten-Instanz zu erstellen und sie an signInWithCredential zu übergeben.

import com.google.firebase.Firebase
import com.google.firebase.auth.GoogleAuthProvider
import com.google.firebase.auth.auth
import kotlinx.coroutines.tasks.await

suspend fun firebaseSignInWithGoogle(idToken: String) {
    // idToken comes from Credential Manager / Google Identity
    val credential = GoogleAuthProvider.getCredential(idToken, null)
    Firebase.auth.signInWithCredential(credential).await()
}

Abmelden

Die Abmeldung erfolgt mit einem einzigen Aufruf: auth.signOut(). Dadurch wird der lokale Benutzer entfernt und Ihr Authentifizierungsstatus-Listener ausgelöst.

Bei der Google-Anmeldung können Sie außerdem den Status des Credential Manager löschen, damit beim nächsten Mal wieder die Auswahl angezeigt wird. Nach der Abmeldung wird currentUser zu null.

import com.google.firebase.Firebase
import com.google.firebase.auth.auth

fun logout() {
    Firebase.auth.signOut()
    // currentUser is now null; your AuthStateListener fires
}

Authentifizierungsfehler behandeln

Fehler bei der Authentifizierung lösen typisierte Ausnahmen aus, die Sie gezielt behandeln können:

  • FirebaseAuthInvalidUserException — Benutzer nicht vorhanden oder deaktiviert.
  • FirebaseAuthInvalidCredentialsException — falsches Passwort oder ungültige E-Mail-Adresse.
  • FirebaseAuthUserCollisionException — E-Mail-Adresse bereits registriert.

Ordnen Sie diese Fehler verständlichen Meldungen zu, statt rohe Stacktraces anzuzeigen.

import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException
import com.google.firebase.auth.FirebaseAuthUserCollisionException

fun messageFor(e: Throwable): String = when (e) {
    is FirebaseAuthInvalidCredentialsException -> "Wrong email or password"
    is FirebaseAuthUserCollisionException -> "That email is already in use"
    else -> "Something went wrong, try again"
}

Kurze Überprüfung

Sie möchten den Benutzer automatisch zwischen einem Anmeldebildschirm und einem Startbildschirm wechseln lassen, sobald er sich an- oder abmeldet. Welcher Ansatz ist dafür am saubersten?

Zusammenfassung: Authentifizierung

Sie können Benutzer jetzt mit Firebase authentifizieren:

  • Aktivieren Sie die Anbieter in der Console und fügen Sie für Google Ihren SHA-1 hinzu.
  • Verwenden Sie Firebase.auth mit createUserWithEmailAndPassword / signInWithEmailAndPassword.
  • Google-Anmeldung: Rufen Sie ein ID-Token ab, erstellen Sie eine GoogleAuthProvider-Anmeldedaten-Instanz und rufen Sie signInWithCredential auf.
  • Lesen Sie die Identität über currentUser aus (verwenden Sie uid als Datenschlüssel).
  • Reagieren Sie mit einem AuthStateListener und melden Sie Benutzer mit signOut() ab.

Als Nächstes speichern Sie die Daten dieses Benutzers in Cloud Firestore.

Häufig gestellte Fragen

Ist die Lektion „Firebase Authentication“ kostenlos?

Ja — der vollständige Text von „Firebase Authentication“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Firebase Authentication“?

Anmeldung per E-Mail und Google Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Firebase Authentication“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Firebase einrichten
  2. Firebase Authentication
  3. Grundlagen von Cloud Firestore
  4. Push-Benachrichtigungen mit Cloud Messaging
← Zurück zu Android Academy