我们有一个children
集合,其中包含具有属性parentId
的对象,在这里我们需要限制令牌有效载荷中具有parentId
的用户对读取对象的访问。为了实现此安全规则,可能如下:
match /children/{childId} {
allow read: if resource.data.parentId == request.auth.token.parentId;
}
如果我们通过添加超级集合parent
并将其子项作为子集合来重组数据,则安全规则将变为;
match /parent/{parentId}/children/{childId} {
allow read: if parentId == request.auth.token.parentId;
}
这种结构是否可以降低查询成本?