从 AngularFire 获取数据时出错

Error getting data from AngularFire

我正在尝试为我的 table 设置数据。 我有一个服务应该像这样检索数据:

  constructor(public af: AngularFire, userData: UserData) {
    this.smartTableData = af.database.list('events/' + userData.user.uid +'/contacts');
  }

  getData(): any {
    return this.smartTableData;
  }

我的组件是:

 constructor(protected service: SmartTablesService) {
    this.service.getData().then((data) => {
      this.source.load(data);
    });
  }

我的控制台错误:

zone.js:357 Error: Uncaught (in promise): Error: Error in ./SmartTables class SmartTables_Host - inline template:0:0 caused by: this.service.getData(...).then is not a function(…)

AngularFire2 与 Observables 一起工作,您 subscribe 可以使用它。 你得到的错误是因为你试图调用一个未定义的函数 then,它在 Promises 中可用,而不是 Observables。

您想将 then 替换为 subscribe 以检索数据。

constructor(protected service: SmartTablesService) {
   this.service.getData().subscribe((data) => {
     this.source.load(data);
   });
}