我正在使用angularfire2从实时数据库中获取数据。响应如下所示
{"type":"value",
"payload":{
"-LJXFAd_q3Cin64EBc7H":
{"_date":"9-8-2018",
"_deliveryType":"Pick up",
"_estDeliveryTime":"2018-08-10T11:43:57.164Z",
"_location":""}
}}
这样做
有效载荷内的元素是使用push创建的键。我不知道该如何引用,因此如何获取“ LJXFAd_q3Cin64EBc7H”下的数据?
有效载荷中有很多这样的条目,我需要全部获取。
上面得到的代码是:
getOrderHistory(uid:string){
console.log('start of getOrderHistory with uid:' + uid)
return new Promise((resolve, reject) =>
{
this.db.object("/users/" + uid + "/orders").snapshotChanges().subscribe(
res => {
//console.log('response:' + res)
resolve(res)
},
err => {
console.log(err)
reject(err)
}
)
})
}
答案 0 :(得分:1)
尝试一下,它将每个快照映射到一个拥有其键和值的对象。
Highscore.txt
答案 1 :(得分:0)
通常,实时数据库发送快照,您可以在其中执行snapshot.id以获取id和.data(或我目前忘记的.data())以获取有效负载。
JSON.parse
,然后对其进行迭代或使用点符号或方括号符号对其进行处理。要获得财产:
obj[payload][LJXFAd_q3Cin64EBc7H]
要迭代:
function eachRecursive(obj)
{
for (var k in obj)
{
if (typeof obj[k] == "object" && obj[k] !== null)
eachRecursive(obj[k]);
else
// do something...
}
}