小编Ayo*_*emi的帖子

展平/束缚多个嵌套的Firebase可观察对象

我正在尝试使用AngularFire2。我正在查询,下面一切正常。

我想将所有/大多数可观察物合并为一个:

getTournamentWithRounds(key):Observable<Tournament> {

    return this.af.database
        .object(`/tournaments/${key}`)
        .map(tourney => {

            let t = Tournament.fromJson(tourney);

            this.af.database.list('players', {
                query: {
                    orderByChild: 'tournament_key',
                    equalTo: key
                }
            })
            .map(Player.fromJsonList)
            .subscribe(ps => { t.players = ps; });

            this.af.database.list('rounds', {
                query: {
                    orderByChild: 'tournament_key',
                    equalTo: key
                }
            })
            .map(Round.fromJsonList)
            .subscribe(rs => { t.rounds= rs; })

            return t;
        })
  }
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以加入所有可观察对象,并通过一个订阅功能获得输出。

我想知道何时所有初始数据都已加载,并在将其输出到视图之前在控制器中执行其他计算。

另外,如何扩展到每轮比赛?

我对上述代码的扩展为:

...

this.af.database.list('rounds', {
    query: {
        orderByChild: 'tournament_key',
        equalTo: key
    }
})
.map(rounds => {
    return rounds.map((round) => {

        let r = Round.fromJson(round);

        this.af.database.list('matches', …
Run Code Online (Sandbox Code Playgroud)

observable firebase firebase-realtime-database rxjs5 angularfire2

2
推荐指数
1
解决办法
562
查看次数