我正在Google Firebase中存储对象列表。我想要处理每个对象并将它们存储在一个数组中:
firebase.database().ref('trainingsets').once('value')
.then((snapshot) => {
var trainingSets: TrainingSet[] = [];
console.log(snapshot.val()); // Console 1
snapshot.forEach((child) => {
console.log("child=" + child); // Console 2
trainingSets.push(child);
});
console.log(trainingSets); // Console 3
this.trainingSets = trainingSets;
this.trainingSetsChanged.next(this.trainingSets.slice());
});
TrainingSet是一个反映存储在Firebase中的每个对象的模型:
export class TrainingSet {
/**
* Unique Identifier of this set
*/
id:number;
name:string;
type: string;
description: string;
}
我的数据已成功检索。在注释Console 1中,我看到一个Object,它有两个包含我数据的子对象。但是在Console 2中,我只得到空对象,在Console 3中,我有一个包含正确数量元素的数组,但是标题为“V”的元素中包含一堆奇怪的子项。我不确定那些实际上是什么。
任何人都可以告诉我最好的方法是什么?我真的不需要一个数组,如果我可以正确地遍历对象树,我可能只是使用它。
答案 0 :(得分:0)
我在这里找到了我的解决方案:https://firebase.google.com/docs/database/web/lists-of-data#listen_for_value_events
x-d
我需要调用孩子的val函数。