AI 提示:编写 Firebase 安全规则

此提示可帮助 AI 助理(例如 Gemini CLI)为您的应用生成和优化 Firebase Security Rules。您可以使用此提示为常见应用场景起草 Security Rules,例如授予特定于用户的访问权限、实现基于角色的权限以及验证数据。

此提示侧重于生成以下项目的 Security Rules

  • Cloud Firestore:根据应用的逻辑保护集合和文档。
  • Cloud Storage for Firebase:验证对存储文件的访问权限。

使用此提示有助于您从一开始就建立强大的安全状况,但您应始终在将 Security Rules 部署到生产环境之前对其进行全面测试。如需详细了解如何测试 Security Rules,请参阅 Firebase Security Rules 使用入门:测试您的 Security Rules

前提条件

限制

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

  • 此提示旨在为 Cloud FirestoreCloud Storage for Firebase 生成 Firebase Security Rules。目前还无法为 Firebase Realtime Database 生成 Security Rules

  • Firebase Security Rules 在从服务器或其他后端环境(例如使用 Firebase Admin SDK 时)访问数据库或存储桶时不会被调用。如果您使用的是 Admin SDK,则需要负责在后端代码中管理授权和数据验证。

  • Firebase 控制台内的 Gemini in Firebase 无法生成 Firebase Security Rules,即使使用此提示也是如此。请改用可访问代码库的替代 AI 助理,例如 Gemini CLI(本页面对此进行了介绍)。

使用提示

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

使用此扩展程序需要执行三个步骤,本部分将对此进行介绍:

  1. 生成 Security Rules 和测试

  2. 查看 Security Rules 验证和测试结果

  3. Security Rules 部署到您的 Firebase 项目

第 1 步:生成 Security Rules 和测试

安装并运行扩展程序:

  1. 安装Gemini CLI扩展程序:

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

    gemini
  3. 从项目根目录运行扩展程序,以生成 Cloud FirestoreCloud StorageSecurity Rules

    • Cloud Firestore 生成 Security Rules

      /firebase-rules:firestore Generate Firebase Security Rules using PROJECT ID PROJECT_ID

      在父级目录中,扩展程序会创建一个 firestore.rules 文件和一个新的 rules_test 目录,其中包含一个 Node.js 项目,该项目具有针对生成的 Security Rules 的单元测试。

    • Cloud Storage for Firebase 生成 Security Rules

      /firebase-rules:storage Generate Firebase Security Rules using PROJECT ID PROJECT_ID and BUCKET NAME BUCKET_NAME

      在父级目录中,扩展程序会创建一个 storage.rules 文件和一个新的 storage_rules_test 目录,其中包含一个 Node.js 项目,该项目具有针对生成的 Security Rules 的单元测试。

第 2 步:查看 Security Rules 验证和测试结果

  1. 确保 AI 助理完成以下操作。扩展程序运行后,您应该会获得生成的摘要。

    • 语法验证:生成 Security Rules 后,Gemini CLI 会使用 Firebase MCP 服务器中的 firebase_validate_security_rules 命令自动验证语法。

    • 单元测试:验证语法后,Gemini CLI 会尝试使用 Firebase Local Emulator Suite 运行生成的单元测试。

  2. 如果测试未自动运行,请在单独的终端中启动 Firebase Local Emulator Suite,然后使用以下任一选项运行测试:

    • 方式 1:指示 Gemini CLI 运行测试:

      Firebase Emulator Suite is running in a separate terminal. Please execute the tests.
      
    • 方法 2:按照 rules_teststorage_rules_test 目录中的 README.md 文件中的说明手动运行测试。

第 3 步:将 Security Rules 部署到您的 Firebase 项目

如果您对生成的 Security Rules 的结果感到满意,请使用以下 Firebase CLI 命令将 Security Rules 部署到您的 Firebase 项目:

  • Cloud Firestore

    firebase deploy --only firestore:rules
  • Cloud Storage for Firebase

    firebase deploy --only storage

其他资源

  • 如需有关安全状况的更多帮助,您还可以使用 Gemini CLI 的安全扩展程序,这是一个开源扩展程序,可分析代码更改以识别安全风险和漏洞。