因此,我正在使用angularfire2并尝试从位于实时数据库中的Firebase项目中提取数据。相反,它不断从我的数据库中提取一个奇怪且高度复杂的对象。
ml-auto
这是我的firebase的设置方式。
但是我得到了这个疯狂的复杂对象!我的数据在哪里?
答案 0 :(得分:1)
这是因为db.list()
无法直接返回列表,首先是因为它返回了一个类,该类允许您执行更复杂的任务(.add()
,.remove()
,.update()
),还因为尚未下载数据。
Angular在可观察对象方面工作很多,这是使数据保持角度连接的首选方法。我无法在这篇文章中为您解释Observables,但是我可以快速向您展示如何记录它获取的值(随着时间的推移,它会获取多个值,因为数据库会更新)
首先,要获取可观察的值,我们可以
this.db.list('/thisisatest').valueChanges(); // This returns the observable
如此处所述:https://github.com/angular/angularfire2/blob/master/docs/rtdb/lists.md#retrieve-data 您很有可能想要在您的应用中
this.people = this.db.list('/thisisatest').valueChanges();
如果您要console.log记录调试值,则可以执行操作(除了将其分配给this.people
)
this.db.list('/thisisatest').valueChanges().subscribe(people_value => {
console.log('people:', people_value);
});
仍然值得在Observables上阅读更多,因为它们不是最容易掌握的:)