单步执行从Firebase

时间:2017-05-09 21:19:09

标签: typescript firebase firebase-realtime-database

我正在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”的元素中包含一堆奇怪的子项。我不确定那些实际上是什么。

任何人都可以告诉我最好的方法是什么?我真的不需要一个数组,如果我可以正确地遍历对象树,我可能只是使用它。

1 个答案:

答案 0 :(得分:0)

我在这里找到了我的解决方案:https://firebase.google.com/docs/database/web/lists-of-data#listen_for_value_events

x-d

我需要调用孩子的val函数。