56 lines
3.1 KiB
Markdown
56 lines
3.1 KiB
Markdown
# ChatGPT-Prompt: Firebase-Zugang für MetalCircle
|
|
|
|
Den folgenden Prompt in einen neuen Chat kopieren. Keine Secret-Dateien mitgeben.
|
|
|
|
```text
|
|
Hilf mir Schritt für Schritt, den serverseitigen Firebase-Zugang für MetalCircle
|
|
im Entwicklungs-/Testbetrieb einzurichten. Verwende aktuelle offizielle
|
|
Firebase-/Google-Cloud-Dokumentation und erkläre mir die Console-Bedienung.
|
|
|
|
Ausgangslage:
|
|
- Privates Projekt MetalCircle, Repository historisch kai/pingu-concerts.
|
|
- Android: Capacitor 6, Package ID dauerhaft de.pinguholic.concerts.
|
|
- Firebase-Anzeigename MetalCircle; die tatsächliche Projekt-ID muss ich prüfen.
|
|
- Android-google-services.json ist vorhanden. Tokenregistrierung und manuelle
|
|
Firebase-Testnachrichten/Kampagnen funktionieren bereits.
|
|
- Backend: FastAPI, PostgreSQL, Docker Compose, firebase-admin Python 7.1.0.
|
|
- Pushs für Freundschaftsanfragen, Direktnachrichten und Einladungen sind implementiert.
|
|
Kategorien und DE/EN werden pro Empfänger beachtet; Nachrichteninhalt bleibt privat.
|
|
- Versand ist standardmäßig deaktiviert und wurde mit simuliertem Firebase getestet.
|
|
|
|
Bitte begleite mich bei:
|
|
1. Auswahl des Projekts und Ermittlung der tatsächlichen Projekt-ID.
|
|
2. Prüfung/Aktivierung der Firebase Cloud Messaging API HTTP v1.
|
|
3. Einem eigenen Test-Service-Account, z. B. metalcircle-push-test, mit den für FCM
|
|
nötigen Rechten. Prüfe roles/firebasecloudmessaging.admin bzw.
|
|
cloudmessaging.messages.create. Kein persönliches Admin-Konto verwenden.
|
|
4. Erstellung und sicherer Ablage der Service-Account-JSON außerhalb von Repository
|
|
und Docker-Buildkontext. Nur der Betreiber soll die Datei lesen können.
|
|
5. Lokaler .env-Konfiguration:
|
|
PUSH_ENABLED=true
|
|
FIREBASE_PROJECT_ID=<echte Projekt-ID>
|
|
FIREBASE_SERVICE_ACCOUNT_FILE=<absoluter Pfad zur Secret-Datei>
|
|
6. Start mit compose.yml plus compose.push.yml. Dieses Override mountet die Datei
|
|
read-only unter /run/secrets/firebase-service-account.json und setzt im Backend
|
|
GOOGLE_APPLICATION_CREDENTIALS auf diesen Pfad.
|
|
Lokal HTTP: COOKIE_SECURE=false docker compose -f compose.yml -f compose.push.yml up -d --build web
|
|
Auf einem HTTPS-Testserver bleibt COOKIE_SECURE=true.
|
|
7. End-to-End-Test mit zwei Testkonten: Anfrage, Nachricht, Veranstaltungseinladung,
|
|
DE/EN, Kategorien, Antippen, Logout und Benutzerwechsel.
|
|
|
|
Grenzen:
|
|
- Niemals Schlüssel, Tokens, vollständige .env oder JSON-Inhalte im Chat anfordern.
|
|
- google-services.json ist Client-Konfiguration, kein Backend-Service-Account.
|
|
- Keine Legacy-Server-Keys und keine Admin-Credentials in der Android-App.
|
|
- kai = persönlicher Gitea-Account; codex-bot = Git; metalcircle-bot = Issue-API.
|
|
Keinen dieser Zugänge für Firebase verwenden.
|
|
- PinguCore ist lokal. Cloud-Staging betreue ich separat. Kein automatischer
|
|
Cloud-/Produktionszugriff oder Produktionsdeployment.
|
|
- Test und Produktion bekommen getrennte Credentials.
|
|
- Verbietet eine Organisationsrichtlinie JSON-Schlüssel, umgehe sie nicht.
|
|
Erkläre die vorgesehenen Alternativen und welche Code-Anpassung nötig wäre.
|
|
|
|
Frage zuerst nur nach der Ziel-Testumgebung und gehe dann schrittweise vor.
|
|
Prüfe Ergebnisse anhand ungefährlicher Statusangaben, niemals Secret-Inhalte.
|
|
```
|