Tabellen als Flow beobachten
Reaktive Aktualisierungen erhalten, wenn sich die Datenbank ändert
Tabellen als Flow beobachten ist eine kostenlose Kotlin Multiplatform Academy-Lektion auf CoddyKit. Dies ist Lektion 4 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 Kotlin Multiplatform Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.
Warum beobachten statt abfragen
Wenn Sie eine Abfrage manuell erneut ausführen, entgehen Ihnen Änderungen. SQLDelight kann Ihnen immer dann aktuelle Ergebnisse senden, wenn sich die Tabelle ändert.
Die Coroutines-Erweiterung hinzufügen
Reaktive Abfragen benötigen das coroutines-extensions-Artefakt, das Ihren generierten Abfragen Flow-Unterstützung hinzufügt.
implementation("app.cash.sqldelight:coroutines-extensions:2.0.2")Eine Abfrage in einen Flow umwandeln
Rufen Sie bei einer beliebigen Select-Abfrage asFlow auf, um einen Flow zu erhalten, der bei jedem Schreibvorgang in die zugrunde liegende Tabelle erneut emittiert.
val flow = queries.selectAll().asFlow()Auf Ergebnisse abbilden
asFlow liefert einen Abfrage-Wrapper. Verketten Sie daher mapToList, damit bei jeder Datenänderung eine fertige Kotlin-Liste emittiert wird.
val players = queries.selectAll()
.asFlow()
.mapToList(Dispatchers.IO)Datenströme für einzelne Zeilen
Verwenden Sie für eine einzelne Zeile mapToOneOrNull. Es emittiert die Zeile oder null und aktualisiert sich automatisch, sobald sich diese Zeile ändert.
queries.selectById(1)
.asFlow()
.mapToOneOrNull(Dispatchers.IO)Im gemeinsamen Code sammeln
Sie verarbeiten den Datenstrom, indem Sie ihn sammeln. Jede Einfügung, Aktualisierung oder Löschung in dieser Tabelle löst eine neue Emission aus.
players.collect { list -> render(list) }Als StateFlow bereitstellen
Umschließen Sie den Flow mit einem StateFlow, damit Ihr gemeinsames ViewModel die aktuelle Liste als einzige Quelle der Wahrheit enthält.
val state = players.stateIn(scope, SharingStarted.Eagerly, emptyList())Android sammelt mit Compose
Unter Android wandelt collectAsState den StateFlow in Compose-State um, sodass die Liste bei jeder Änderung automatisch neu zusammengesetzt wird.
val list by viewModel.state.collectAsState()iOS sammelt aus Swift
Unter iOS beobachten Sie denselben StateFlow aus Swift und aktualisieren SwiftUI, sodass beide Apps mit der Datenbank synchron bleiben.
Ein Schreibvorgang aktualisiert beide UIs
Fügen Sie an beliebiger Stelle eine Zeile ein, und jeder aktive Flow gibt erneut Werte aus. Die Datenbank wird zur Live-Quelle, die beide Plattformen antreibt.
Den richtigen Dispatcher wählen
Führen Sie das Mapping nebenläufig zum Hauptthread aus, indem Sie einen Hintergrund-dispatcher übergeben. So bleibt die UI flüssig, während Abfragen laufen.
Kurzer Check
Sie sammeln selectAll().asFlow().mapToList(...). Wann gibt der Flow erneut einen Wert aus?
Rückblick: Live-Daten
Sie haben Abfragen in Flows umgewandelt, sie auf Ergebnisse abgebildet, einen StateFlow bereitgestellt und beide UIs bei jedem Schreibvorgang aktualisieren lassen. Ihre gemeinsame Datenbank ist jetzt reaktiv. ✅
Lerne Kotlin mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „Tabellen als Flow beobachten“ kostenlos?
Ja — der vollständige Text von „Tabellen als Flow beobachten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Kotlin Multiplatform Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Kotlin Multiplatform Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Tabellen als Flow beobachten“?
Reaktive Aktualisierungen erhalten, wenn sich die Datenbank ändert Du übst Kotlin Multiplatform 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 Kotlin Multiplatform Academy zu starten?
Keine Vorkenntnisse erforderlich. Kotlin Multiplatform 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 4 von 4.
Wie lange dauert die Lektion „Tabellen als Flow beobachten“?
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 Kotlin Multiplatform Academy-Lektion Code schreiben und ausführen?
Ja. Jede Kotlin Multiplatform 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
- SQLDelight hinzufügen und .sq-Schemas schreiben
- Plattformspezifisches SqlDriver-Setup
- Zeilen einfügen, abfragen und aktualisieren
- Tabellen als Flow beobachten