2017-08-24 52 views
1

該代碼片段是較大代碼的一部分。通常我在firebase數據庫上有一個叫做用戶的對象(它不是一個列表)。我需要得到其中一些,然後轉換成ArrayFirebaseListObservable將多個FirebaseObjectObservable轉換爲FirebaseListObservable

Observable.merge(...[ 
    this.db.object('users/user1'), 
    this.db.object('users/user2'), 
    this.db.object('users/user3'), 
    this.db.object('users/user4'), 
    this.db.object('users/user5') 
]).subscribe(user => { 
    console.log(user); 
}); 

這回我用戶通過用戶,但是我需要得到所有用戶一起。我需要同步進行。有任何想法嗎?

+0

你看過'Promise.all'嗎? – theblindprophet

回答

1

我有一個類似的問題,這是我如何解決它的那一刻:

getUsers(): Observable<any> { 
    let observables = []; 
    for (let user of users) { 
     observables.push(this.db.object(user)) 
    }  
    return Observable.combineLatest(...observables, (...results) => { return results }); 
} 

什麼我沒做的是把它作爲回報FirebaseListObservable。

+0

這是一個可行的解決方案。我發現其他對我更好的作品。我用list方法查詢firebase並指定我想要的鍵值。 –