【问题标题】:Firestore security rules for nested collections嵌套集合的 Firestore 安全规则
【发布时间】:2018-02-26 14:31:52
【问题描述】:

我的安全规则如下:

match /xxx/{yyy}{
    allow read: if resource.data.zzzId == request.auth.uid;
}    
match /xxx/{yyy}/aaa/{bbb}{
    allow read: if resource.data.zzzId == request.auth.uid;
}

zzzId 字段存在于yyybbb 文档中,并且具有相同的值。现在,在一个 Android 应用程序中,我有两个FirestoreRecyclerAdapters,一个用于xxx 集合中的文档,另一个用于aaa 集合中的文档。第一个适配器显示数据,而另一个失败并出现InsufficientPermisions 错误。

我已经对安全规则进行了一些盲测,并且我已经验证了对 bbb 文档的请求设置了 request.auth.uid 并且当我硬编码要与之比较的值时,它可以工作。因此,resource.data.zzzId 部分肯定有问题,即。它在规则中得到了错误的值(或者可能根本没有值)。

有人能解释一下吗?

【问题讨论】:

    标签: google-cloud-firestore firebase-security


    【解决方案1】:

    事实证明这是查询子集合中数据的错误方式。当我为zzzId 字段添加whereEqualTo 子句时,一切正常。 Firebase 文档实际上在某处提到它,但我现在找不到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多