技能 firebase-firestore-standard
📦

firebase-firestore-standard

安全

设置和保护 Cloud Firestore 数据库

Firebase 开发人员需要清晰的 Firestore 配置、安全规则编写和 SDK 使用指南。本技能提供涵盖 Firestore 标准版各方面的全面文档。

支持: Claude Codex Code(CC)
🥉 75 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“firebase-firestore-standard”。 为 posts 集合生成基本安全规则

预期结果:

包含默认拒绝、已发布帖子的认证读取访问、写入权限限制为帖子作者、title 和 content 字段验证,以及不可变的 createdAt 时间戳的规则。

正在使用“firebase-firestore-standard”。 如何使用多个 where 子句进行查询?

预期结果:

解释何时需要复合索引、使用 query() 与多个 where 条件的示例查询语法,以及在 Firebase Console 中创建索引的链接。

安全审计

安全
v1 • 4/12/2026

This skill contains documentation markdown files only. Static analyzer flagged 246 patterns (external commands, URLs, regex patterns) that are all false positives - they are code examples in documentation, not executable code. No actual security risks detected.

5
已扫描文件
798
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

45
架构
100
可维护性
87
内容
50
社区
100
安全
83
规范符合性

你能构建什么

新 Firebase 项目设置

首次创建 Firestore 数据库的开发人员需要配置文件、安全规则和部署工作流方面的指导。

安全规则实施

构建生产应用程序的团队需要具有适当身份验证、授权和数据验证的全面安全规则。

Web 应用程序集成

前端开发人员需要使用模块化 SDK 将 Firestore 集成到 React、Vue 或原生 JavaScript 应用程序中。

试试这些提示

基本 Firestore 设置
帮助我为新的 Firebase 项目设置 Cloud Firestore。我需要创建配置文件并部署初始安全规则。
用户数据的安全规则
为 users 集合生成 Firestore 安全规则,其中每个用户只能读取和写入自己的个人资料文档。包括对 email 和 name 字段的验证。
复合查询索引配置
我需要按州和人口查询城市并使用 orderBy。我需要什么复合索引以及如何在 firestore.indexes.json 中配置它?
完整应用程序安全规则
分析我的代码库并为包含 users、tasks 和 comments 集合的任务管理应用程序生成全面的 Firestore 安全规则。包括具有 admin 和 user 角色的基于角色的访问控制。

最佳实践

  • 安全规则始终以默认拒绝开始,并明确授予所需的最小权限
  • 使用验证器函数模式避免重复,并确保 create 和 update 规则之间的一致性验证
  • 将时间戳等高写入频率字段排除在自动索引之外,以避免写入瓶颈

避免

  • 对包含 PII(如电子邮件地址)的集合使用 allow read: if isAuthenticated()
  • 在没有适当授权检查的情况下允许用户创建或更新自己的 role 字段
  • 编写安全规则时未验证数据类型和更新时的字段约束

常见问题

我需要为每个查询创建索引吗?
不需要。Firestore 会自动为所有字段创建单字段索引。只有在查询涉及多个字段并使用 where、orderBy 或对不同字段的范围运算符时,才需要复合索引。
我如何知道我的安全规则是否正确?
使用 Firebase Console 中的 Firestore Rules Playground 以不同的身份验证状态测试规则。同时按照魔鬼代言人攻击清单进行验证以确保安全性。
我可以不安装 Firebase CLI 就使用此技能吗?
可以。所示的 Firebase CLI 命令使用 npx,它会临时下载工具。但是,对于活跃开发,建议本地安装 Firebase CLI。
setDoc 和 updateDoc 之间有什么区别?
setDoc 创建文档或完全覆盖它。updateDoc 仅更新指定字段,如果文档不存在则会失败。对于自动生成的文档 ID,请使用 addDoc。
如何在不暴露私人数据的情况下处理公共用户个人资料?
不允许读取包含 PII 的用户文档。相反,将姓名和头像等公共信息反规范化到他们创建的资源(帖子、评论)中,或使用单独的公共集合。
为什么我收到关于需要索引的错误?
您的查询需要复合索引。错误消息包含指向 Firebase Console 的直接链接,您可以在其中为查询创建所需的准确索引。