You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore规则沙箱提示‘Path must be document-level’的原因咨询

Firestore规则沙箱提示"Path must be document-level"的原因及解决办法

这是Firestore规则沙箱的设计限制导致的:沙箱不支持直接模拟集合级别的读取/写入请求,必须指定到具体的文档路径,哪怕你实际想验证的是集合的规则。这和真实API的行为不一样——真实场景里确实可以直接请求集合,但沙箱要求你通过单个文档的操作测试来间接验证集合权限。

看你提供的规则:

rules_version = '2';

service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId}/todos {
      allow read, write: if request.auth.uid == userId;
    }
  }
}

这里的规则匹配的是整个todos集合,但沙箱没法直接测试这个集合的请求。你需要把路径改成具体的文档路径,比如/users/你的测试UID/todos/任意文档ID(比如/users/user123/todos/todo001),再去模拟请求。

另外要注意:如果集合下的任意文档都符合规则要求,那真实场景中的集合请求会被允许;如果部分文档不符合,集合请求会自动过滤掉无权限的文档。所以通过测试单个文档的权限,就能推断集合请求的结果。

内容的提问来源于stack exchange,提问作者splaytreez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:11:14