假设我有一个简单的架构,其中包含两个集合用户和帖子。每个帖子对象都有一个键值对(ownerId:userId),用于找出哪些用户拥有该帖子对象。
users/{1,2,3...}
posts/{a,b,c...}/ownerId:userId
我正在尝试编写用户只能读取/写入其用户数据和帖子的规则。
对于用户来说, bolt 规则非常简单:
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);
}
关于firebase - 如何检查用户是否拥有 Firebase Bolt 编译器中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35476829/