2016-12-24 87 views
0

我正在与firebase进行很多工作,并试图从数据库中加载某些信息。原始数据来自查询,并在POJO中返回给我。控制台打印此当返回原始数据:如何从POJO中有效提取某些信息

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

什么,我需要做的就是抓住每一个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq)分开的,并再次查询实时数据库的每一个。我可以管理这方面,但我似乎无法弄清楚如何区分这些值。

我已经尝试做得到一个输出: console.log(vals[0])但它只是返回undefined,并通过分裂的"字符串将是大数据集的效率非常低。有任何想法吗?

+0

什么是您的POJO样子? '{'-KhQ76OEK_848CkIFhAq“:”-JhQ76OEK_848CkIFhAq“,”-OhQ76OEK_848CkIFhAq“:”-LhQ76OEK_848CkIFhAq“}' – Shanimal

+0

你可以在你的问题中包含查询吗?推测,你已经通过调用val()查询的快照结果 – cartant

+0

@Shanimal是的,这是正确的 – Ethan

回答

0

为了解决这个问题,我所做的就是把由以下使用此代码object返回到array

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

得好好的,我现在可以运行一个简单的for环路Array

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" 
    }); 
    });