Firebase Config - Quick Reference¶
🤔 Welches Script verwenden?¶
┌─────────────────────────────────────────────────────────────┐
│ Was möchtest du tun? │
└─────────────────────────────────────────────────────────────┘
📝 Ich habe Rules im Root bearbeitet
→ firebase deploy --only firestore:rules
→ ./firebase_config/sync_from_root.sh (zum Backup sichern)
🆕 Ich setze ein NEUES Firebase-Projekt auf
→ ./firebase_config/setup_project.sh
→ firebase use --add
→ firebase deploy
📥 Ich habe das Repo geklont
→ Nichts! Die Dateien sind schon im Root
→ Nur: firebase use --add (um dein Projekt zu wählen)
🚀 Ich will deployen
→ ./firebase_config/deploy_rules.sh
🔄 Kollege hat Rules geändert (git pull)
→ Nichts! Root-Dateien sind aktuell durch git
→ Nur deployen wenn nötig
📂 Verzeichnisstruktur¶
/ ← Root (aktive Dateien)
├── firestore.rules ← Firebase CLI liest HIER
├── storage.rules ← Firebase CLI liest HIER
├── firestore.indexes.json ← Firebase CLI liest HIER
├── firebase.json ← Firebase CLI liest HIER
├── cors.json ← Für gsutil cors set
│
└── firebase_config/ ← Backup & Templates
├── firestore.rules (Backup/Template)
├── firestore.rules.production (Production Version)
├── storage.rules (Backup/Template)
├── firestore.indexes.json (Backup/Template)
├── firebase.json (Backup/Template)
├── cors.json (Backup/Template)
│
├── sync_from_root.sh ← Root → firebase_config
├── setup_project.sh ← firebase_config → Root
└── deploy_rules.sh ← Deployment
🔁 Typische Workflows¶
Workflow 1: Rules ändern¶
vim firestore.rules # Im Root bearbeiten
firebase deploy --only firestore:rules # Deployen
./firebase_config/sync_from_root.sh # Backup sichern
git add . && git commit -m "..." # Committen
Workflow 2: Production Rules aktivieren¶
cp firebase_config/firestore.rules.production firestore.rules
firebase deploy --only firestore:rules
./firebase_config/sync_from_root.sh
Workflow 3: Neues Projekt¶
git clone ...
./firebase_config/setup_project.sh
firebase login
firebase use --add
firebase deploy --only firestore:rules,storage:rules
⚠️ Wichtig zu verstehen¶
- Git tracked die Root-Dateien UND firebase_config/
-
Beide Versionen sind im Repo
-
Firebase CLI liest NUR die Root-Dateien
-
firebase deployschaut nur in/firestore.rulesusw. -
firebase_config/ ist für Menschen
- Backup für neues Projekt-Setup
- Template für andere Entwickler
-
Production-Varianten
-
Nach Änderungen immer sync_from_root.sh
- Sonst driften Root und firebase_config/ auseinander
- Andere Entwickler haben veraltete Templates