Firestore Rules Simulator - 资源未定义

ptg*_*odz 4 firebase google-cloud-firestore firebase-security-rules

我正在尝试使用firebase提供的新规则模拟器工具,但是我遇到了让它工作的问题

在模拟器面板中设置这样的路径时

/users/Gd9jd3jd8sSixxx38djSs
Run Code Online (Sandbox Code Playgroud)

然后选择身份验证选项并将授权用户的uid作为相同的字符串Gd9jd3jd8sSixxx38djSs输入.使用此firestore规则时出现以下错误

match /users/{user}{
     allow read: if request.auth.uid == resource.id
}
Run Code Online (Sandbox Code Playgroud)

"错误:simulator.rules行[4],列[41].对象上的属性id未定义."

此文档确实存在于我的firestore数据库中,并且位于指定的正确路径中.

有人有主意吗?谢谢

Dou*_*son 5

听起来你只想使用user你定义的占位符:

 allow read: if request.auth.uid == user
Run Code Online (Sandbox Code Playgroud)

  • 这工作完美,谢谢。但是我真的很困惑为什么 resource.id 不起作用。我认为资源是指正在执行规则的文档。那么它仍然不能以其他方式工作吗? (3认同)
  • @DougStevenson:我遇到了同样的问题,但是 - request.auth.uid == request.resource.data.userID; 错误:simulator.rules 行 [8],列 [38]。对象上未定义属性资源。 (2认同)