如何从POJO中有效地提取某些信息

时间:2016-12-24 00:17:03

标签: javascript html firebase firebase-realtime-database

我正在使用firebase工作,我正在尝试从数据库加载某些信息。原始数据来自查询,并在POJO中返回给我。控制台在返回原始数据时打印出来:

-KhQ76OEK_848CkIFhAq: "-JhQ76OEK_848CkIFhAq"
-OhQ76OEK_848CkIFhAq: "-LhQ76OEK_848CkIFhAq"

我需要做的是分别获取每个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq),并再次查询每个值的实时数据库。我可以管理这方面,但我似乎无法弄清楚如何分离值。

我已经尝试通过执行以下方式获得单个输出: console.log(vals[0])但它刚刚返回未定义,并且将字符串拆分为"对于大型数据集来说效率非常低。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

要访问这些值,您可以使用快照的forEach方法迭代快照的子项。可以使用key属性和val()方法获取子项的键和值:

firebase.database()
  .ref("some/path")
  .once("value")
  .then((snapshot) => {
    snapshot.forEach((childSnapshot) => {
      console.log(childSnapshot.key);   // The child's key: e.g. "-KhQ76OEK_848CkIFhAq"
      console.log(childSnapshot.val()); // The child's value: e.g. "-JhQ76OEK_848CkIFhAq"
    });
  });

答案 1 :(得分:0)

要解决此问题,我所做的只是使用以下代码将object返回到array

var Array = Object.keys(datalist).map(function(k) { return datalist[k] });

像魅力一样工作,我现在可以为for

运行一个简单的Array循环