【问题标题】:Firestore Rules Simulator - Resource undefinedFirestore 规则模拟器 - 资源未定义
【发布时间】:2019-01-23 06:07:09
【问题描述】:

我正在尝试使用 firebase 提供的新规则模拟器工具,但是我无法让它工作

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

/users/Gd9jd3jd8sSixxx38djSs

然后选择认证选项,将授权用户的uid输入为相同的字符串Gd9jd3jd8sSixxx38djSs。使用此 Firestore 规则时出现以下错误

match /users/{user}{
     allow read: if request.auth.uid == resource.id
}

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

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

有人有什么想法吗?谢谢

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-security


    【解决方案1】:

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

     allow read: if request.auth.uid == user
    

    【讨论】:

    • 效果很好,谢谢。但是,我真的很困惑为什么 resource.id 不起作用。我认为资源是指正在执行规则的文档。那么它仍然不能以另一种方式工作吗?
    • 如果数据库中没有匹配的实际文档,就没有id。
    • @DougStevenson:我遇到了同样的问题,但对于-request.auth.uid == request.resource.data.userID;错误:simulator.rules 行 [8],列 [38]。对象上的属性资源未定义。
    • @BishalGhimire 您在模拟器中遇到了该错误,因为您可能在运行模拟之前没有单击构建文档选项来创建文档。这对我来说是错误的原因。我希望它有帮助
    猜你喜欢
    • 2018-03-17
    • 2017-02-16
    • 2019-12-12
    • 2021-04-09
    • 2020-06-18
    • 1970-01-01
    • 2021-12-16
    • 2019-08-13
    • 1970-01-01
    相关资源
    最近更新 更多