所以我一直在搜索很多东西,但找不到任何东西。 收集帖子评论,只有登录用户才能阅读。
如何为 list 操作编写安全规则,以便仅在尝试获取特定帖子的评论时才允许列出。查询非常简单,如下所示:
let query = store.comments
.where( 'postId','==',postId )
.orderBy( 'createdAt','desc' )
.limit(10)
.get()
我担心人们在获取评论时会想到没有具体的postId 。因此,我将查询的文档数量限制为 max。每个请求10个,以及执行此操作时需要登录,但是,为了尝试仅在存在 postId 时才允许列出,我尝试了如此多的变种都没有用。
match /comments/{key} {
allow list: if isLoggedIn() && request.query.limit <= 10 && request.resource.data.keys().hasAny(['postId'])
}
不起作用。
allow list: if isLoggedIn() && request.query.limit <= 10 && request.resource.data.postId is string
也无法正常工作。
allow list: if isLoggedIn() && request.query.limit <= 10 && request.resource.data.postId == resouce.data.postId
什么都没有。尝试过 hasAll 和 hasOnly ,仍然没有。 我认为发生的是,仅在列出文档时, request.resource.data 实际上并不存在。
我知道您可以检查 query.orderBy ,但这对我而言无济于事。
请告知