Bug de l’émulateur Firestore : Les écritures de données réussissent mais rien ne s’affiche (Résolu)
🧪 Ce qui s’est passé
La configuration
- Utilisation d’un seul projet Firebase pour la production et le développement
- Exécution locale de Firestore avec la Suite d’Émulateurs
- Utilisation du mode local uniquement pour éviter d’écrire en production
- Tout fonctionnait : écritures, lectures, règles, etc.
⚐️ Le changement
-
Scission de Firebase en :
- Un projet de production
- Un projet de développement séparé pour les tests locaux
Motivation : La suite d’émulateurs ne prend pas tout en charge ; la séparation évite les conflits avec la production
😤 Le problème
-
Les écritures Firestore ont réussi :
- ✅ Coches vertes dans l’onglet Requêtes de l’interface de l’émulateur
- ✅ Aucune violation de règle
-
Mais l’onglet Data de Firestore était vide :
- Aucun
/users,/words, ou nouveaux documents
- Aucun
Pourtant les logs montraient :
create /databases/(default)/documents/users/UID/words/term|lang
update /databases/(default)/documents/users/UID/words/term|lang
Diagnostic
🔍 La cause principale
-
L’interface de l’émulateur n’affiche la base de données Firestore que pour le projet par défaut défini dans l’interface de ligne de commande (CLI) Firebase
-
Si le contexte CLI est défini sur un projet différent (ancien) :
- Les écritures de l’émulateur vont vers une base de données
- L’interface utilisateur lit depuis une autre
- ❌ Incohérence des données
La solution : Définir le bon projet par défaut
✅ Étape par étape
-
Ouvrez le terminal dans le dossier de votre projet
-
Ajoutez un alias de projet :
firebase use --add -
Entrez un alias (par ex.,
dev) -
Définissez-le comme projet par défaut :
firebase use dev -
Redémarrez l’émulateur :
firebase emulators:start
Aujourd’hui, l’interface utilisateur affiche la bonne base de données : /firestore/data/databases/(default)/documents
🔧 Optionnel : Définir par défaut dans .firebaserc
Mettez à jour le fichier .firebaserc :
{
"projects": {
"default": "votre-id-de-projet-dev"
}
}
Cela empêche les erreurs accidentelles de contexte CLI.
Conclusion
Si les écritures réussissent mais qu’aucune donnée n’apparaît :
- Vous écrivez probablement sur un projet alors que l’interface utilisateur lit un autre projet.
Solution
firebase use <alias-de-projet>
firebase emulators:start
🤀 TL;DR (Résumé)
| Symptôme | Solution |
|---|---|
| Les écritures réussissent mais aucune donnée ne s’affiche | Exécuter firebase use <votre-alias-dev> |
| L’interface utilisateur est toujours vide | Vérifiez que l’interface utilisateur affiche la bonne BD |
| Vous souhaitez que la configuration persiste | Modifiez .firebaserc et définissez "default" |
Bonne émulation 👨💻🔥