From 413728a3d6702df59cc5d2b8da04a25bce105bab Mon Sep 17 00:00:00 2001 From: User Date: Fri, 14 Aug 2026 14:38:09 +0200 Subject: [PATCH] Configure production env and Firebase --- .env.example | 26 ++++++++++++++++++-------- src/lib/firebase.ts | 18 +++++++++++++++++- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/.env.example b/.env.example index 7a550fe..2513e23 100644 --- a/.env.example +++ b/.env.example @@ -1,9 +1,19 @@ -# GEMINI_API_KEY: Required for Gemini AI API calls. -# AI Studio automatically injects this at runtime from user secrets. -# Users configure this via the Secrets panel in the AI Studio UI. -GEMINI_API_KEY="MY_GEMINI_API_KEY" +# Core app runtime +VITE_APP_URL="https://your-domain.com" +VITE_GEMINI_API_KEY="MY_GEMINI_API_KEY" -# APP_URL: The URL where this applet is hosted. -# AI Studio automatically injects this at runtime with the Cloud Run service URL. -# Used for self-referential links, OAuth callbacks, and API endpoints. -APP_URL="MY_APP_URL" +# Firebase web config +VITE_FIREBASE_API_KEY="YOUR_FIREBASE_API_KEY" +VITE_FIREBASE_AUTH_DOMAIN="YOUR_PROJECT.firebaseapp.com" +VITE_FIREBASE_PROJECT_ID="YOUR_PROJECT_ID" +VITE_FIREBASE_STORAGE_BUCKET="YOUR_PROJECT.firebasestorage.app" +VITE_FIREBASE_MESSAGING_SENDER_ID="YOUR_MESSAGING_SENDER_ID" +VITE_FIREBASE_APP_ID="YOUR_FIREBASE_APP_ID" +VITE_FIREBASE_MEASUREMENT_ID="YOUR_MEASUREMENT_ID" +VITE_FIREBASE_DATABASE_ID="YOUR_FIRESTORE_DATABASE_ID" +VITE_FIREBASE_OAUTH_CLIENT_ID="YOUR_OAUTH_CLIENT_ID" +VITE_FIREBASE_RECAPTCHA_SITE_KEY="YOUR_RECAPTCHA_SITE_KEY" + +# Optional legacy values that may still be referenced by other tooling +GEMINI_API_KEY="MY_GEMINI_API_KEY" +APP_URL="https://your-domain.com" diff --git a/src/lib/firebase.ts b/src/lib/firebase.ts index dbe7665..2337d0c 100644 --- a/src/lib/firebase.ts +++ b/src/lib/firebase.ts @@ -14,7 +14,23 @@ import { limit, getDocs } from 'firebase/firestore'; -import firebaseConfig from '../../firebase-applet-config.json'; +import firebaseConfigFile from '../../firebase-applet-config.json'; + +const firebaseConfig = { + apiKey: import.meta.env.VITE_FIREBASE_API_KEY || firebaseConfigFile.apiKey, + authDomain: import.meta.env.VITE_FIREBASE_AUTH_DOMAIN || firebaseConfigFile.authDomain, + projectId: import.meta.env.VITE_FIREBASE_PROJECT_ID || firebaseConfigFile.projectId, + storageBucket: import.meta.env.VITE_FIREBASE_STORAGE_BUCKET || firebaseConfigFile.storageBucket, + messagingSenderId: + import.meta.env.VITE_FIREBASE_MESSAGING_SENDER_ID || firebaseConfigFile.messagingSenderId, + appId: import.meta.env.VITE_FIREBASE_APP_ID || firebaseConfigFile.appId, + measurementId: import.meta.env.VITE_FIREBASE_MEASUREMENT_ID || firebaseConfigFile.measurementId, + firestoreDatabaseId: + import.meta.env.VITE_FIREBASE_DATABASE_ID || firebaseConfigFile.firestoreDatabaseId, + oAuthClientId: import.meta.env.VITE_FIREBASE_OAUTH_CLIENT_ID || firebaseConfigFile.oAuthClientId, + recaptchaSiteKey: + import.meta.env.VITE_FIREBASE_RECAPTCHA_SITE_KEY || firebaseConfigFile.recaptchaSiteKey +}; // Initialize Firebase App const app = !getApps().length ? initializeApp(firebaseConfig) : getApp();