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 Security Rules 之前,请先安装 Firebase MCP 服务器

限制

我们正在积极改进相关体验,因此这份限制清单可能会发生变化。请经常回来查看,了解最新动态。

  • Firebase 中的 Gemini 无法生成 Firebase Security Rules。使用其他 AI 助理,例如 Gemini CLI
  • 此提示旨在为 Cloud FirestoreCloud Storage for Firebase 生成 Firebase Security Rules。目前还无法为 Firebase Realtime Database 生成 Rules
  • Firebase Security Rules 在从服务器或其他后端环境(例如使用 Firebase Admin SDK 时)访问数据库或存储分区时不会被调用。如果您使用的是 Admin SDK,则需要负责管理后端代码中的授权和数据验证。

使用提示

  1. 使用 Firebase Security Rules实验性 Gemini CLI 扩展程序来生成规则和测试。

    此扩展程序会分析您的源代码,以帮助识别 Cloud FirestoreCloud Storage 的数据架构和访问模式。它旨在根据最小权限原则起草 Rules,并通过迭代“攻击”模拟来尝试发现漏洞。为了帮助您进行最终验证,它提供了一个使用 @firebase/rules-unit-testing 的初始单元测试套件,让您可以使用 Firebase Local Emulator Suite 在本地验证安全逻辑。

    如需安装和使用该扩展程序,请执行以下操作:

    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 Firestore 创建 rules_test 目录,或为 Cloud Storage 创建 storage_rules_test 目录。这个新目录包含生成的 .rules 文件以及一个包含单元测试的 Node.js 项目。

  2. 查看规则验证和测试结果:

    • 语法验证 - 生成规则后,Gemini CLI 会使用 Firebase MCP 服务器中的 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 的安全扩展程序,该扩展程序是一款开源扩展程序,可分析代码更改以识别安全风险和漏洞。