Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
朋友列表的Firebase安全规则_Firebase_Firebase Realtime Database - Fatal编程技术网

朋友列表的Firebase安全规则

朋友列表的Firebase安全规则,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,是否有一种有效的方法在Firebase中的节点列表上实施安全规则,以防止许多网络连接和查询 我正在用一个用户列表做一个应用程序,每个用户都有一个他们想与朋友列表中的人共享的帖子列表(基本上有点像社交网络) 一种方法是有一个“/users”表,其中每个用户在其用户节点下有一个朋友列表“/users/xxx/friends”,以及一个他们自己的帖子列表“/users/xxx/posts”。要查询其所有朋友最近的帖子,需要进行许多Firebase查询,每个用户朋友的“帖子”节点一个 如果有人想查询好友

是否有一种有效的方法在Firebase中的节点列表上实施安全规则,以防止许多网络连接和查询

我正在用一个用户列表做一个应用程序,每个用户都有一个他们想与朋友列表中的人共享的帖子列表(基本上有点像社交网络)

一种方法是有一个“/users”表,其中每个用户在其用户节点下有一个朋友列表“/users/xxx/friends”,以及一个他们自己的帖子列表“/users/xxx/posts”。要查询其所有朋友最近的帖子,需要进行许多Firebase查询,每个用户朋友的“帖子”节点一个

如果有人想查询好友列表中每个人的“帖子”,这需要同时进行许多查询,因为Firebase不允许有人查询整个“用户”表并过滤掉好友列表中没有的任何帖子

另一个选项是为所有用户提供一个单独的“/posts”列表,可以在一个操作中查询这些用户。但是,在这种情况下,您也无法实施安全规则来仅过滤朋友的帖子,因为Firebase不允许根据安全规则过滤“帖子”列表


我能看到的唯一方法是只为朋友列表中的人查找“帖子”列表,即为每个朋友同时发出多个查询。

我发现很难准确解析此描述。作为开发人员,我们通常更习惯于阅读代码/数据结构。与其描述您的数据结构和查询,不如共享实际的JSON(作为文本,您可以通过单击中的导出JSON获得)和查询的代码。感谢@FrankvanPuffelen,为清晰起见进行了编辑
{
  "users" : {
    "FKOZlhz05xrVvKGl2" : {
      "name" : "John Smith",
      "friends" : {
        "Tz7Ztv546lOaowrq2" : true
      }
     "posts" : {
        "-Kc-n235d5" : {
          "text" : "This is a status update"
        }
    },
    "Tz7Zt546jlOaowrq2" : {
      "name" : "Helen test",
      "friends" : {
        "FKOZlhz05xrVvKGl2" : true
      },
      "posts" : {
        "-Kc-neow05" : {
          "text" : "Another status update"
        },
        "-Kc-ab3243" : {
          "text" : "Feeling confused"
        }
      }
    }
}