此提示可帮助 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。
前提条件
- 熟悉 Firebase Security Rules 最佳实践。
- 如需运行 Firebase Security Rules 的单元测试并使用 Firebase Local Emulator Suite,请安装 Node.js 和 Firebase CLI。如需查看完整说明,请参阅安装、配置和集成 Firebase Local Emulator Suite。
- 推荐:如果您尚未安装 Gemini CLI,请先安装。 以下说明介绍了如何安装和使用 Gemini CLI 扩展程序来生成 Security Rules。如果您想使用其他 AI 助理,可以将扩展程序的代码库中的提示复制并粘贴到您选择的 AI 助理中。
- 此 Gemini CLI 扩展程序使用 Firebase MCP 服务器来验证其生成的 Firebase Security Rules。MCP 服务器还可用于更轻松地测试和部署 Security Rules。 在使用扩展程序生成 Firebase Security Rules 之前,请先安装 Firebase MCP 服务器。
限制
我们正在积极改进相关体验,因此这份限制列表可能会发生变化。请经常回来查看,了解最新动态。
此提示旨在为 Cloud Firestore 和 Cloud 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 Rules 的 Gemini CLI 扩展程序提供,用于生成 Security Rules 和测试。此扩展程序会分析您的源代码,以帮助识别 Cloud Firestore 和 Cloud Storage 的数据架构和访问模式。它旨在根据最小权限原则起草 Security Rules,并通过迭代“攻击”模拟来尝试发现漏洞。为了帮助您进行最终验证,它提供了一个使用 @firebase/rules-unit-testing 的初始单元测试套件,让您可以使用 Firebase Local Emulator Suite 在本地验证安全逻辑。
使用此扩展程序需要执行三个步骤,本部分将对此进行介绍:
第 1 步:生成 Security Rules 和测试
安装并运行扩展程序:
安装Gemini CLI扩展程序:
gemini extensions install https://github.com/firebase/snippets-rules启动 Gemini CLI:
gemini从项目根目录运行扩展程序,以生成 Cloud Firestore 或 Cloud Storage 的 Security 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 验证和测试结果
确保 AI 助理完成以下操作。扩展程序运行后,您应该会获得生成的摘要。
语法验证:生成 Security Rules 后,Gemini CLI 会使用 Firebase MCP 服务器中的
firebase_validate_security_rules命令自动验证语法。单元测试:验证语法后,Gemini CLI 会尝试使用 Firebase Local Emulator Suite 运行生成的单元测试。
如果测试未自动运行,请在单独的终端中启动 Firebase Local Emulator Suite,然后使用以下任一选项运行测试:
方式 1:指示 Gemini CLI 运行测试:
Firebase Emulator Suite is running in a separate terminal. Please execute the tests.方法 2:按照
rules_test或storage_rules_test目录中的README.md文件中的说明手动运行测试。
第 3 步:将 Security Rules 部署到您的 Firebase 项目
如果您对生成的 Security Rules 的结果感到满意,请使用以下 Firebase CLI 命令将 Security Rules 部署到您的 Firebase 项目:
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage for Firebase
firebase deploy --only storage
其他资源
- 如需有关安全状况的更多帮助,您还可以使用 Gemini CLI 的安全扩展程序,这是一个开源扩展程序,可分析代码更改以识别安全风险和漏洞。