【发布时间】:2020-02-26 06:49:22
【问题描述】:
您好,我正在尝试使用云功能访问 firebase 实时数据库中的嵌套数据,我的数据如下所示:
{
"RANGE1": {
"left": 2,
"overlayImage": "",
"right": 1,
"submittedInfo": {
"left_1": {
"TimeStamp": "2020-02-16 19:05:35",
"horozontalAccuracy": 10,
"latitude": 0000,
"longitude": 0000
},
"left_2": {
"TimeStamp": "2020-02-16 19:23:59",
"horozontalAccuracy": 10,
"latitude": 0000,
"longitude": 0000
},
"left_3": {
"TimeStamp": "2020-02-20 19:35:28",
"horozontalAccuracy": 10,
"latitude": 0000,
"longitude": 0000
},
"right_1": {
"TimeStamp": "2020-02-16 19:08:30",
"horozontalAccuracy": 10,
"latitude": 0000,
"longitude": 0000
}
}
},
"RANGE2": {
"left": 1,
"overlayImage": "",
"right": 1,
"submittedInfo": {
"left_1": {
"TimeStamp": "2020-02-12 22:07:11",
"horozontalAccuracy": 5,
"latitude": 0000,
"longitude": 0000
},
"right_1": {
"TimeStamp": "2020-02-12 22:36:36",
"horozontalAccuracy": 11.721012922544011,
"latitude": 0000,
"longitude": 0000
}
}
}
}
而且我有一个应该过滤和展平这些数据的函数。但我似乎无法弄清楚如何深入节点。我尝试的一切似乎都卡在访问 [object Object] 或 typeof() 仍然应该是 JSON 对象时返回一个字符串
admin.database().ref(".../range").once('value').then((snapshot) => {
var flagInfo = [];
snapshot.forEach((range) => {
console.log("range is : " + range) // [object Object]
console.log("range[submitted] " + range['submittedInfo']) // undefined???
// what I need to do is something like:
range["submittedInfo"].forEach((flagData) => {
console.log(flagData.key)
console.log(flagData["latitude"]) // and so on for the rest of the keys
}) // end
})
【问题讨论】:
-
你能添加接受的输出吗
-
类型错误,“无法读取未定义的属性 'forEach'”。错误发生在范围["submittedInfo"].foreach((flagData) ...
标签: javascript firebase-realtime-database google-cloud-functions