此提示可帮助 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 Security Rules 之前,请先安装 Firebase MCP 服务器。
限制
我们正在积极改进相关体验,因此这份限制清单可能会发生变化。请经常回来查看,了解最新动态。
- Firebase 中的 Gemini 无法生成 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 Local Emulator Suite 在本地验证安全逻辑。如需安装和使用该扩展程序,请执行以下操作:
安装 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 项目。查看规则验证和测试结果:
- 语法验证 - 生成规则后,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.- 语法验证 - 生成规则后,Gemini CLI 会使用 Firebase MCP 服务器中的
如果您对生成的 Rules 的结果感到满意,请使用以下 Firebase CLI 命令部署 Rules。
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage
firebase deploy --only storage
其他资源
- 如需有关安全状况的更多帮助,您还可以使用 Gemini CLI 的安全扩展程序,该扩展程序是一款开源扩展程序,可分析代码更改以识别安全风险和漏洞。