Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.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 如何有效地从POJO中提取某些信息_Javascript_Html_Firebase_Firebase Realtime Database - Fatal编程技术网

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

Javascript 如何有效地从POJO中提取某些信息,javascript,html,firebase,firebase-realtime-database,Javascript,Html,Firebase,Firebase Realtime Database,我经常与firebase合作,并尝试从数据库加载某些信息。原始数据来自查询,并在POJO中返回给我。当返回原始数据时,控制台将打印此信息: -KhQ76OEK_848CkIFhAq: "-JhQ76OEK_848CkIFhAq" -OhQ76OEK_848CkIFhAq: "-LhQ76OEK_848CkIFhAq" 我需要做的是分别获取每个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq),然后再次查询实时数据库中的每个值。我可以管理这方面,但我似乎不知

我经常与firebase合作,并尝试从数据库加载某些信息。原始数据来自查询,并在POJO中返回给我。当返回原始数据时,控制台将打印此信息:

-KhQ76OEK_848CkIFhAq: "-JhQ76OEK_848CkIFhAq"
-OhQ76OEK_848CkIFhAq: "-LhQ76OEK_848CkIFhAq"
我需要做的是分别获取每个值(-JhQ76OEK_848CkIFhAq和-LhQ76OEK_848CkIFhAq),然后再次查询实时数据库中的每个值。我可以管理这方面,但我似乎不知道如何区分这些值

我已经尝试通过执行以下操作获得单个输出:
console.log(vals[0])
但它只是返回未定义的,并将字符串按
对于大型数据集来说效率很低。有什么想法吗?

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

firebase.database()
.ref(“部分/路径”)
.一次(“价值”)
。然后((快照)=>{
snapshot.forEach((childSnapshot)=>{
console.log(childSnapshot.key);//孩子的密钥:例如“-KhQ76OEK_848CkIFhAq”
console.log(childSnapshot.val());//子级的值:例如“-JhQ76OEK_848CkIFhAq”
});
});

为了解决这个问题,我所做的就是使用下面的代码将返回的
对象
转换为
数组

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

工作起来很有魅力,我现在可以运行一个简单的
for
循环,用于
数组

您的POJO是什么样子的<代码>{'-KhQ76OEK͐ckifhaq:'-jhq76oek848ckifhaq“,“-ohq76oek848ckifhaq:'-lhq76oek848ckifhaq”}你能在你的问题中包含这个查询吗?想必,你是通过调用
val()获得这个对象的
查询的快照结果。@Shanimal yes,即correct@cartant是的,这正是我所做的,这就是查询返回的结果