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
Javascript 从Firebase检索数据_Javascript_Firebase - Fatal编程技术网

Javascript 从Firebase检索数据

Javascript 从Firebase检索数据,javascript,firebase,Javascript,Firebase,我对Firebase世界真的很陌生,我在尝试做一些事情时遇到了麻烦 我的Firebase与此类似: - users + 1 + 2 + 3 + 4 ... + n ,其中的数字是facebook用户id 我想检查某个用户的哪些朋友在系统上注册(即在Firebase上) 为此,我想发送一个JSON,其中包含我想要检查的所有ID,并接收检查的ID 可能吗?或者我需要一个一个检查 谢谢 Firebase目前没有办法说“按id只给我列表中的一个子集”,这相当于SQL语句SELE

我对Firebase世界真的很陌生,我在尝试做一些事情时遇到了麻烦

我的Firebase与此类似:

- users
  + 1
  + 2
  + 3
  + 4
  ...
  + n
,其中的数字是facebook用户id

我想检查某个用户的哪些朋友在系统上注册(即在Firebase上)

为此,我想发送一个JSON,其中包含我想要检查的所有ID,并接收检查的ID

可能吗?或者我需要一个一个检查


谢谢

Firebase目前没有办法说“按id只给我列表中的一个子集”,这相当于SQL语句
SELECT*FROM user WHERE id IN(…)
。但是,目前有两种方法来处理此问题:

处理此用例有两种主要方法:

  • 正如您所提到的,只要客户机对检索此数据感兴趣,客户机就可以逐个加载每个用户。通过调用
    var ref=new Firebase(…)
    ref.child(…)
    创建Firebase引用非常便宜,不过您需要等待所有的孩子加载才能获得朋友列表的完整图片。此外,这将导致您将侦听器添加到一些不存在的子项中,并且在列表中只包含一个
    null

  • 另一方面,考虑对数据进行非规范化处理。Anant@Firebase不久前就这个话题写了一篇很棒的博客文章,我推荐它作为一个开始的地方-。对于这个特定的用例,每当您第一次加载一个列表,或者“重新加载”一个用户的朋友列表时,您都可以创建自己的朋友索引

    这两种方法之间的区别本质上是谁进行扇出与聚合。具体地说,上面列出的第二种方法涉及写入多个位置,但消费客户端只读取一个,而第一种方法涉及写入一个位置,但消费客户端读取多个位置