假设我有一个简单的架构,有两个集合用户&帖子.每个post对象都有一个键值对(ownerId:userId),用于查找哪些用户拥有posts对象.
users/{1,2,3...}
posts/{a,b,c...}/ownerId:userId
我试图编写规则,用户只能读/写他的用户数据和他的帖子.
为此,用户的螺栓规则非常简单:
isUser(uid) = auth != null && auth.uid == uid;
path /users/$uid {
read() = isUser($uid);
write() = isUser($uid);
}
我的问题是如何保护帖子集合只能由用户访问.我可以在规则中检查posts集合的ownderId属性吗?如果是这样,如果不是,他们如何构建我的架构呢?
编辑
我试图确保帖子路径像这样:
path /posts/$pid {
read() = isUser(this.ownerId);
write() = isUser(this.ownerId);
}
这是正确的方法吗?
最佳答案 我们可以通过向集合添加所有者Id属性,然后检查用户是否经过身份验证来实现此目的.
path /posts/$pid {
read() = isUser(this.ownerId);
write() = isUser(this.ownerId);
}