2017-08-24 51 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并指定我想要的键值。 –