這項提示可協助 AI 助理 (例如 Gemini CLI) 生成及修正應用程式的 Firebase Security Rules。您可以使用提示草擬常見用途的 Rules,例如授予使用者專屬存取權、實作角色型權限,以及驗證資料。
這項提示會著重於為以下內容生成 Rules:
- Cloud Firestore:根據應用程式的邏輯保護集合和文件。
- Cloud Storage for Firebase:驗證所儲存檔案的存取權。
使用這個提示有助於建立強大的安全防護機制,但請務必先徹底測試 Rules,再部署至實際工作環境。如要進一步瞭解如何測試 Rules,請參閱「開始使用 Firebase Security Rules:測試規則」。
事前準備
- 熟悉安全性規則最佳做法。
- 如要執行 Firebase Security Rules 的單元測試並使用 Firebase Local Emulator Suite,請安裝 Node.js 和 Firebase CLI。如需完整操作說明,請參閱「安裝、設定及整合 Local Emulator Suite」。
- 建議:如果尚未安裝 Gemini CLI,請先完成這項程序。以下說明如何安裝及使用 Gemini CLI 擴充功能生成 Rules。如要使用其他 AI 輔助工具,可以從存放區複製提示,然後貼到所選的 AI 輔助工具。
- 這項 Gemini CLI 擴充功能會使用 Firebase MCP 伺服器驗證產生的 Firebase Security Rules。您也可以使用 MCP 伺服器,更輕鬆地測試及部署 Rules。安裝 Firebase MCP 伺服器 再使用擴充功能產生 Firebase Security Rules。
限制
我們正積極改善這項功能的使用體驗,因此這份限制清單可能會有所變動。請經常回來查看最新消息。
- Gemini in Firebase 無法生成 Firebase Security Rules。使用其他 AI 助理,例如 Gemini CLI。
- 提示的目的是為 Cloud Firestore 和 Cloud Storage for Firebase 生成 Firebase Security Rules。目前還無法為Firebase Realtime Database生成Rules。
- Firebase Security Rules。Firebase Admin SDK如果您使用 Admin SDK,請負責管理後端程式碼中的授權和資料驗證。
使用提示
使用 Firebase Security Rules 的實驗性 Gemini CLI 擴充功能,產生規則和測試。
這項擴充功能會分析您的原始碼,協助找出 Cloud Firestore 和 Cloud Storage 的資料結構定義和存取模式。這項工具的設計宗旨是根據最低權限原則草擬 Rules,並透過反覆的「攻擊」模擬作業,嘗試找出安全漏洞。為協助完成最終驗證,這項工具會使用
@firebase/rules-unit-testing提供起始單元測試套件,讓您使用 Firebase 本機模擬器套件在本機驗證安全性邏輯。如要安裝及使用擴充功能,請按照下列步驟操作:
安裝 Gemini CLI 擴充功能:
gemini extensions install https://github.com/firebase/snippets-rules開啟 Gemini CLI。
gemini
從專案根目錄執行擴充功能,為 Cloud Firestore 產生規則:
/firebase-rules:firestore Generate rules using PROJECT ID PROJECT_ID或是為 Cloud Storage 產生規則:
/firebase-rules:storage Generate rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME
擴充功能會在專案根目錄中建立 Cloud Firestore 的
rules_test目錄,或 Cloud Storage 的storage_rules_test目錄。這個新目錄包含產生的.rules檔案,以及附有單元測試的 Node.js 專案。查看規則驗證和測試結果:
- 語法驗證 - 產生規則後,系統會使用 Firebase MCP 伺服器的 Gemini CLI
firebase_validate_security_rules指令自動驗證語法。 - 單元測試 - 驗證語法後,Gemini CLI 會嘗試使用 Firebase Local Emulator Suite 執行產生的單元測試。如要執行測試,您需要在另一個終端機中執行 Firebase Local Emulator Suite。
如果測試未自動執行,請在另一個終端機中啟動 Firebase Local Emulator Suite,然後使用下列任一選項執行測試:
* Instruct Gemini CLI to run tests: ```none Firebase Emulator Suite is running in a separate terminal. Please execute the tests. ``` * Run tests manually by following the instructions in the `README.md` file in the `rules_test` or `storage_rules_test` directory.- 語法驗證 - 產生規則後,系統會使用 Firebase MCP 伺服器的 Gemini CLI
對產生的 Rules 結果感到滿意後,請使用下列 Firebase CLI 指令部署 Rules。
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage
firebase deploy --only storage
其他資源
- 如需安全防護機制的額外協助,您也可以使用Gemini CLI 的安全擴充功能,這項開放原始碼擴充功能會分析程式碼變更,找出安全風險和漏洞。