Firestore规则配置:仅指定集合文档所有者可执行删除操作
Firestore 规则配置方案
根据你的需求,以下是对应的Firestore安全规则配置,核心逻辑清晰明确:
- 所有集合的文档允许所有人读取
- 仅
marketCompra、marketTroca、marketVenda这三个集合的文档,只有文档所有者(通过文档内的owner字段匹配用户UID)才能执行删除操作 - 未明确允许的操作(比如写入、更新)默认拒绝,遵循最小权限安全原则
rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { // 全局规则:开放所有文档的读取权限 match /{document=**} { allow read: if true; } // 针对指定三个集合的删除权限控制 match /{collection}/{docId} { allow delete: if collection in ["marketCompra", "marketTroca", "marketVenda"] && request.auth != null && request.auth.uid == resource.data.owner; } } }
规则细节说明
- 全局读取权限:
match /{document=**}匹配所有层级的文档,allow read: if true直接开放所有人的查看权限,满足你“其余文档允许所有人查看”的需求。 - 指定集合的删除限制:
- 通过
collection in ["xxx", "xxx", "xxx"]精准锁定目标集合 request.auth != null确保操作发起者是已登录用户request.auth.uid == resource.data.owner验证用户UID与文档内存储的owner字段一致,仅所有者可删除文档
- 通过
- 默认安全策略:Firestore规则默认拒绝所有未明确允许的操作,因此除了读取和指定集合的所有者删除外,其他操作(比如未授权的写入、更新)都会被拦截,符合安全最佳实践。
内容的提问来源于stack exchange,提问作者trovap
相关产品推荐
相关产品推荐

