【发布时间】: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 字段存在于yyy 和bbb 文档中,并且具有相同的值。现在,在一个 Android 应用程序中,我有两个FirestoreRecyclerAdapters,一个用于xxx 集合中的文档,另一个用于aaa 集合中的文档。第一个适配器显示数据,而另一个失败并出现InsufficientPermisions 错误。
我已经对安全规则进行了一些盲测,并且我已经验证了对 bbb 文档的请求设置了 request.auth.uid 并且当我硬编码要与之比较的值时,它可以工作。因此,resource.data.zzzId 部分肯定有问题,即。它在规则中得到了错误的值(或者可能根本没有值)。
有人能解释一下吗?
【问题讨论】:
标签: google-cloud-firestore firebase-security