Firebase返回复杂的对象,而不是我想要的数据

时间:2019-01-08 23:16:45

标签: angular firebase firebase-realtime-database

因此,我正在使用angularfire2并尝试从位于实时数据库中的Firebase项目中提取数据。相反,它不断从我的数据库中提取一个奇怪且高度复杂的对象。

ml-auto

这是我的firebase的设置方式。

Firebase RealtimeDatabase setup

但是我得到了这个疯狂的复杂对象!我的数据在哪里?

enter image description here

1 个答案:

答案 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上阅读更多,因为它们不是最容易掌握的:)