如何使用 Angularfire2 在 Ionic 2 中执行订阅方法

How to identify method subscribe has executed in Ionic 2 using Angularfire2

我正在尝试使用 Angular2 在我的 Ionic2 项目中从 Firebase 获取数据。以下是代码。

  getNextItem(): string[] {

    this.af.database.object(`/user/${uid}/data`)
    .subscribe(value =>{
      this.item = value;
    });
    return this.item;
  }

在这种情况下,我的 item 始终为空,因为 subscribe 方法在我的方法完成后执行。我也无法从 subscribe 方法中 return item 。 那么我将如何获取数据以及如何识别 subscribe 方法何时执行?

您是否不必创建一个新的 Promise

return new Promise(resolve => {
   this.af.database.object(`/user/${uid}/data`).subscribe(resolve => {
         this.item = resolve;
   });
 });

还没有尝试过这段代码,所以不确定它是否有效。

我一般都是这样写的

getDataByUser(fbPath: string, userId: string) {
    return new Promise(resolve => {
        this.af.database.list(`${fbPath}/${userId}/data`)
            .subscribe(res => resolve(res));
    })
}