Вложенный запрос на 3 уровнях

Я пытаюсь получить результат от Firebase с помощью этого запроса:

  // Get all Tipps
  getAll(match: String): Observable<any> {
    let filter: Object = { query: { orderByChild: 'match', equalTo: match } };
    return this.loginService.af.database.list('/tipps/', filter).map((tipps) => {   
      return tipps.map((tipp) => { 
        tipp.matchsub = this.loginService.af.database.object("/matches/" + tipp.match).map((matches) => {
          return matches.map((match) => {
            match.team1sub = this.loginService.af.database.object("/teams/" + match.team1);
            match.team2sub = this.loginService.af.database.object("/teams/" + match.team2);
            return match;
          })
        });
        return tipp;
     });
   });
  }

Я не уверен, делает ли он то, что должен, потому что 2-й уровень уже наблюдаем, где я не могу смотреть на выход.

Я использую этот код в моем шаблоне, чтобы получить данные:

<div class="match_container" *ngFor="let tipp of tippsmodelview; let i = index;">
   <div class="matchbody-col3">
     {{(tipp.matchsub.team2sub | async)?.teamname}}
   </div>
</div>

Выходные данные не показывают ошибку, но это также не работает. Кто может дать мне подсказку, чтобы показать данные 3-го уровня?

1 ответ

  1. Я бы сказал, попробуйте перестроить свою базу данных Firebase — поскольку вы уже идете на 3 уровня глубоко, чтобы получить некоторые данные, это должно быть более плоским.