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

Firestore自定义声明权限问题:路径变量myDocId未被解析?

Firestore自定义声明权限规则问题解析

问题核心

你写的规则里request.auth.token.myDocId没有按预期解析变量,根源在Firestore安全规则的属性访问语法规则:

  • 用.(点符号)访问对象属性时,myDocId会被当作固定的属性名,规则会去token里找名为"myDocId"的键,而不是用当前文档ID(myId123)作为键去匹配。
  • 手动写成request.auth.token.myId123时,点符号正好匹配你设置的自定义声明键,所以权限校验能通过。

正确写法

要让规则把myDocId当作变量(当前文档ID)去匹配token里的键,必须用方括号语法,修改后的规则如下:

match /myCollection/{myDocId} {
  allow read, write: request.auth.token[myDocId];
}

补充说明

你在设置自定义声明时用了JavaScript的计算属性名{[myId123]:true},能把变量值作为键。Firestore规则语法类似,但访问计算属性必须显式用方括号,不能直接用点符号,这就是你之前忽略的关键点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 22:52:04