2026/08/06

有關 GitHub 分享時共用資料庫之解決方法


在 Google AI Studio 的開發環境中,系統本身就內建了 firebase-integration Skill 與 set_up_firebase 自動化工具(MCP)。

當將您的 GitHub 專案匯入 AI Studio 後,完全不需要手動開 Console 或設定 .env。

🚀 給學生的超極簡 AI Studio 啟用指南(一鍵自動化)



將 GitHub 專案匯入 AI Studio 後,只需在 AI 對話框輸入任意一句話:

    💬 提示詞: 「請幫我初始化這個專案的獨立 Firebase 資料庫。」

🔑 搭配預設帳密流暢體驗

    資料庫獨立:透過 AI Studio 的 Skill 自動生成自己的獨立數據庫。

    預設登入:開啟頁面後,輸入預設管理員帳號 Admin 與通行碼 Pass123,即可直接進入管理後台。

🤖 AI 代理人會自動執行的流程:

    自動呼叫 set_up_firebase 工具:AI 代理人會跳出確認按鈕,學生點擊同意後,系統會在 3 秒內為該學生自動開闢並綁定全新的獨立 Firestore 資料庫與 Auth 認證服務。

    自動產生配置檔:AI 會自動將該學生專屬的 firebase-applet-config.json 寫入專案目錄中,完全不與您的資料庫共用。

    自動套用安全規則:AI 會依據專案的 firestore.rules 完成資料庫安全權限部署。

🔑 搭配預設帳密流暢體驗

    資料庫獨立:學生透過 AI Studio 的 Skill 自動生成自己的獨立數據庫。

    預設登入:學生開啟頁面後,輸入預設管理員帳號 Admin 與通行碼 Pass123,即可直接進入管理後台。

    名單自主管理:學生可以在自己的後台新增他們自己的 Gmail 作為授權管理員,數據完全隔離且互不影響!

🛡️ 系統分析師 (SA) 資安稽核與風險評估報告


1. 核心安全性疑慮解答 (Executive Security Summary)

❓ 疑慮一:下載/Fork GitHub 專案的學生,是否有拿到我的 Google 個人帳號憑證或私鑰?

  • 答案:完全沒有 (NO)

  • 技術分析:您的 GitHub 專案中絕不包含您的 Google 帳號密碼、OAuth Client Secret、Service Account 伺服器金鑰或 Google 雲端管理權限憑證。學生無法存取您的個人 Google 帳戶、Gmail、Google Drive 或 GCP 控制台。


❓ 疑慮二:先前在 GitHub 專案中的 Firebase 資訊,會對我的帳號造成危害嗎?

  • 答案:個人主帳號零危害,僅過去的資料庫連線指標被共用 (現已全數切斷)

  • 技術分析

    1. Firebase 前端金鑰的本質:專案中的 apiKeyprojectId 屬於 Web Client 識別碼(Public App Identifiers),其作用僅是告訴前端瀏覽器「要指向哪一個 Firebase 實例」,並非伺服器最高權限管理金鑰。

    2. 先前共用資料庫的原因:學生 Fork 專案後直接啟動,前端依據專案內的 projectId 指向您的舊 Firestore 實例,因此新增的管理員 Gmail 與問卷會出現在同一個資料庫中。

    3. 現已安全隔離:我們剛剛已完整抹除並重建了全新的獨立 Firebase 資料庫(新 Project ID: gen-lang-client-0805369811)。舊專案的連結已失效,學生目前的程式碼無法讀取或影響您現在的新資料庫。


2. 系統安全防護升級處置 (Security Hardening Actions Applied)

為了確保後續您將專案推送到 GitHub 或開源給學生時100% 隔離,已完成以下架構防護措施:

項目處置內容說明與效益
.gitignore 憑證隔離已將 firebase-applet-config.json 加入 .gitignore今後您更新 GitHub 專案時,您的個人 Firebase 實例設定不會被推送上網。
範本化組態提供提供 firebase-applet-config.json.example.env.example學生複製專案後需自行填入其個人 Firebase 金鑰,確保每個人的數據庫完全獨立。
預設通行碼標準化登入通行碼統一為 Pass123 (預設帳號 Admin)介面上提供明確提示,並完全移除舊有預設的個人化郵件預設綁定。
動態環境變數支援src/firebase.ts 支援 VITE_FIREBASE_* 覆寫學生部署至 Vercel 或 Cloud Run 時,可直接透過平台 Environment Variables 帶入自己的數據庫設定。