我正在使用firebase工作,我正在尝试从数据库加载某些信息。原始数据来自查询,并在POJO中返回给我。控制台在返回原始数据时打印出来:
-KhQ76OEK_848CkIFhAq: "-JhQ76OEK_848CkIFhAq"
-OhQ76OEK_848CkIFhAq: "-LhQ76OEK_848CkIFhAq"
我需要做的是分别获取每个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq),并再次查询每个值的实时数据库。我可以管理这方面,但我似乎无法弄清楚如何分离值。
我已经尝试通过执行以下方式获得单个输出:
console.log(vals[0])
但它刚刚返回未定义,并且将字符串拆分为"
对于大型数据集来说效率非常低。有什么想法吗?
答案 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
循环