Firebase Konfiguration & Dokumentation¶
Dieses Verzeichnis enthält Dokumentation und Deployment-Tools für Firebase.
⚠️ Wichtig¶
Die aktiven Firebase-Konfigurationsdateien liegen im Projekt-Root:
- /firestore.rules - Firestore Security Rules
- /storage.rules - Storage Security Rules
- /firestore.indexes.json - Composite Indexes
- /firebase.json - Projekt-Konfiguration
- /cors.json - Storage CORS-Konfiguration
Diese Dateien werden von Git getrackt und bei git clone automatisch heruntergeladen.
Dateien in diesem Verzeichnis¶
- README.md - Diese Datei
- deploy_rules.sh - Interaktives Deployment Script
- ROLES_AND_PERMISSIONS.md - User-Rollen Dokumentation
- CLOUD_FUNCTIONS_AND_RULES.md - Cloud Functions & Security Rules
- QUICK_REFERENCE.md - Schnellreferenz für häufige Aufgaben
Neues Projekt Setup¶
1. Repository klonen¶
Die Firebase-Konfigurationsdateien sind bereits im Root vorhanden!
2. Firebase CLI installieren¶
3. Firebase Login¶
4. Firebase Projekt hinzufügen¶
5. Rules deployen¶
./firebase_config/deploy_rules.sh
# oder direkt:
firebase deploy --only firestore:rules,storage:rules,firestore:indexes
Workflow¶
Änderungen an Rules¶
-
Bearbeite die Dateien im Root:
-
Teste lokal (optional):
-
Deploye:
-
Commit:
Production Deployment¶
# Wähle Production Projekt
firebase use production
# Deploye Rules
firebase deploy --only firestore:rules,storage:rules
# Zurück zu Dev
firebase use dev
Wichtige Hinweise¶
⚠️ Firestore Rules - Sicherheit¶
Aktuelle Rules erfordern Authentifizierung für alle Collections:
Ausnahme - System Settings (nur SuperAdmin):
match /system_settings/{settingId} {
allow read: if isAuthenticated();
allow write: if isSuperAdmin(); // userRole == 2
}
Details siehe: ROLES_AND_PERMISSIONS.md
Storage Rules¶
Die Storage Rules erlauben: - Artikel-Bilder: Öffentlich lesbar, schreiben nur für authentifizierte User - Alle anderen Dateien: Nur für authentifizierte User
Storage CORS¶
Die /cors.json konfiguriert Cross-Origin Resource Sharing:
# CORS auf Storage anwenden
gsutil cors set cors.json gs://YOUR-PROJECT.appspot.com
# Aktuelle Konfiguration prüfen
gsutil cors get gs://YOUR-PROJECT.appspot.com
Multi-Projekt Setup¶
Für mehrere Firebase-Projekte (dev, staging, prod):
# Projekte hinzufügen
firebase use --add
# Zwischen Projekten wechseln
firebase use dev
firebase use staging
firebase use prod
# Aktuelles Projekt anzeigen
firebase use
# Auf spezifisches Projekt deployen
firebase deploy --only firestore:rules --project dev
firebase deploy --only firestore:rules --project prod
Firestore Indexes¶
Die Indexes werden automatisch aus firestore.indexes.json deployed.
Neue Indexes hinzufügen: 1. Firebase Console → Firestore → Indexes 2. Klicke auf den Link in der Fehlermeldung der Query 3. Oder exportiere bestehende Indexes:
Rules Testen¶
Emulator¶
# Emulator starten
firebase emulators:start --only firestore
# Rules Unit Tests (optional)
firebase emulators:exec --only firestore "npm test"
Rules Playground¶
- Firebase Console → Firestore → Rules
- Tab "Rules Playground" für manuelle Tests