我正在尝试找出一种在 Firebase 中对以下数据进行建模的方法,但我不确定是否可行。
假设我有一个帖子列表。其中一些我想标记为私人,作者指定他们的朋友列表的成员可以查看它。这是否可能,如果可以,是否可以不单独定义帖子和私人帖子。
我正在尝试找出一种在 Firebase 中对以下数据进行建模的方法,但我不确定是否可行。
假设我有一个帖子列表。其中一些我想标记为私人,作者指定他们的朋友列表的成员可以查看它。这是否可能,如果可以,是否可以不单独定义帖子和私人帖子。
您可以使用安全规则指定可以读取和写入的帖子。例如,如果我有这个数据集:
{
"users": {
"me": {
"friends" { "jack", "mary" }
},
},
"posts": {
"post1": {
"owner": "me",
...
}
}
}
我可以使用如下安全规则:
{
"posts": {
"$post_id": {
// any friend can read my post
".read": "auth.uid === data.child('owner').val() || root.child('users/'+data.child.owner.val()+'/friends/'+auth.uid).exists()",
// only I can write it
".write": "auth.uid === data.child('owner').val()"
}
}
}
但是请记住,安全规则不能用作过滤器。你不能迭代一个帖子列表,只期望返回那些允许朋友看到的帖子——如果它遇到列表中不可读的项目,那么操作将无法返回结果。