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
- Kein
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
-
Öffnen Sie das Terminal in Ihrem Projektordner
-
Fügen Sie einen Projektalias hinzu:
firebase use --add -
Geben Sie einen Alias ein (z. B.
dev) -
Legen Sie es als Standard fest:
firebase use dev -
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 👨💻🔥