2017-02-25 54 views
1

我想從使用Angular2的Ionic2項目中的Firebase中獲取數據。以下是代碼。如何識別訂閱在Ionic 2中使用Angularfire2執行的方法

getNextItem(): string[] { 

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

在這種情況下,我的item總是空如subscribe方法執行後,我的方法是完整的。我也不能從subscribe方法中返回item。 那麼我將如何獲取數據以及如何識別何時執行了subscribe方法?

回答

0

你不需要創建一個新的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)); 
    }) 
} 
相關問題