Firebase中的受保护内容可能吗?

时间:2013-07-02 18:54:46

标签: firebase

我正在尝试找出一种在Firebase中建模以下数据的方法,我不确定它是否可行。

说我有一个帖子列表。其中一些我想标记为私有,其中作者指定其朋友列表的成员可以查看它。这是否可能,如果可行的话,可以不单独定义帖子和私人帖子。

1 个答案:

答案 0 :(得分:5)

您可以使用security rules指定可以读取和写入的帖子。例如,如果我有这个数据集:

{
   "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()"
       }
   }
}

但请注意,安全规则不能用作过滤器。你不能迭代一个帖子列表,只希望找回朋友可以看到的帖子 - 如果它遇到列表中不可读的项目,那么操作将无法返回结果。