Firestore-Emulator-Bug: Daten werden geschrieben, aber nichts wird angezeigt (Gelöst)


🧪 Was passiert ist

Das Setup

  • Verwendung eines einzigen Firebase-Projekts für Produktion und Entwicklung
  • Lokale Ausführung von Firestore mit der Emulator Suite
  • Verwendung des rein lokalen Modus, um ein Schreiben in die Produktion zu vermeiden
  • Alles funktionierte: Schreiben, Lesen, Regeln, etc.

⚐️ Der Wechsel

  • Aufteilung von Firebase in:

    • Ein Produktionsprojekt
    • Ein separates Entwicklungsprojekt für lokale Tests

Motivation: Emulator Suite unterstützt nicht alles; Trennung vermeidet Konflikte mit der Produktion.


😤 Das Problem

  • Firestore-Schreibvorgänge waren erfolgreich:

    • ✅ Grüne Häkchen im Emulator-UI-Requests-Tab
    • ✅ Keine Regelverstöße
  • Aber der Firestore Data-Tab war leer:

    • Kein /users, /words, oder neue Dokumente

Die Logs zeigten jedoch:

create /databases/(default)/documents/users/UID/words/term|lang
update /databases/(default)/documents/users/UID/words/term|lang

Diagnose

🔍 Die Fehlerursache

  • Die Emulator-UI zeigt nur die Firestore-DB für das in der Firebase-CLI festgelegte Standardprojekt an.

  • Wenn der CLI-Kontext auf ein anderes (altes) Projekt festgelegt ist:

    • Emulator Write gehen in eine DB
    • Die Benutzeroberfläche liest aus einer anderen
    • ❌ Dateninkongruenz

Die Lösung: Festlegen des richtigen Standardprojekts

✅ Schritt für Schritt

  1. Öffnen Sie das Terminal in Ihrem Projektordner

  2. Fügen Sie einen Projektalias hinzu:

    firebase use --add
    
  3. Geben Sie einen Alias ein (z. B. dev)

  4. Legen Sie es als Standard fest:

    firebase use dev
    
  5. Starten Sie den Emulator neu:

    firebase emulators:start
    

Jetzt zeigt die UI die richtige Datenbank an: /firestore/data/databases/(default)/documents

🔧 Optional: Legen Sie den Standard in .firebaserc fest

Aktualisieren Sie .firebaserc:

{
  "projects": {
    "default": "ihre-dev-projekt-id"
  }
}

Verhindert versehentliche CLI-Kontextinkongruenz.


Fazit

Wenn Schreibvorgänge erfolgreich sind, aber keine Daten angezeigt werden:

  • Schreiben Sie wahrscheinlich in ein Projekt, während die Benutzeroberfläche ein anderes liest.

Lösung

firebase use <projekt-alias>
firebase emulators:start

🤀 TL;DR

Symptom Lösung
Schreiben erfolgreich, aber keine Daten Führen Sie firebase use <ihr-dev-alias> aus
UI immer noch leer Überprüfen Sie, ob die UI die richtige DB zeigt
Möchten Sie die Konfiguration beibehalten Bearbeiten Sie .firebaserc und legen Sie "default" fest

Viel Spaß beim Emulieren 👨‍💻🔥