AI 提示:編寫 Firebase 安全性規則

這項提示可協助 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.jsFirebase 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 FirestoreCloud Storage for Firebase 生成 Firebase Security Rules。目前還無法為Firebase Realtime Database生成Rules
  • Firebase Security RulesFirebase Admin SDK如果您使用 Admin SDK,請負責管理後端程式碼中的授權和資料驗證。

使用提示

  1. 使用 Firebase Security Rules實驗性 Gemini CLI 擴充功能,產生規則和測試。

    這項擴充功能會分析您的原始碼,協助找出 Cloud FirestoreCloud Storage 的資料結構定義和存取模式。這項工具的設計宗旨是根據最低權限原則草擬 Rules,並透過反覆的「攻擊」模擬作業,嘗試找出安全漏洞。為協助完成最終驗證,這項工具會使用 @firebase/rules-unit-testing 提供起始單元測試套件,讓您使用 Firebase 本機模擬器套件在本機驗證安全性邏輯。

    如要安裝及使用擴充功能,請按照下列步驟操作:

    1. 安裝 Gemini CLI 擴充功能:

      gemini extensions install https://github.com/firebase/snippets-rules
      
    2. 開啟 Gemini CLI

      gemini
      
    1. 從專案根目錄執行擴充功能,為 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 Firestorerules_test 目錄,或 Cloud Storagestorage_rules_test 目錄。這個新目錄包含產生的 .rules 檔案,以及附有單元測試的 Node.js 專案。

  2. 查看規則驗證和測試結果:

    • 語法驗證 - 產生規則後,系統會使用 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.
    
  3. 對產生的 Rules 結果感到滿意後,請使用下列 Firebase CLI 指令部署 Rules

    Cloud Firestore

    firebase deploy --only firestore:rules

    Cloud Storage

    firebase deploy --only storage

其他資源

  • 如需安全防護機制的額外協助,您也可以使用Gemini CLI 的安全擴充功能,這項開放原始碼擴充功能會分析程式碼變更,找出安全風險和漏洞。