Angular 三级嵌套查询

Angular 三级嵌套查询,angular,typescript,firebase,firebase-realtime-database,angularfire2,Angular,Typescript,Firebase,Firebase Realtime Database,Angularfire2,我正在尝试使用以下查询从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)

我正在尝试使用以下查询从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;
     });
   });
  }
//获取所有TIPP
getAll(匹配:字符串):可观察{
let filter:Object={query:{orderByChild:'match',equalTo:match};
返回此.loginService.af.database.list('/tipps/',filter.map((tipps)=>{
返回tipps.map((tipp)=>{
tipp.matchsub=this.loginService.af.database.object(“/matches/”+tipp.match).map((matches)=>{
返回匹配项。映射((匹配)=>{
match.team1sub=this.loginService.af.database.object(“/teams/”+match.team1);
match.team2sub=this.loginService.af.database.object(“/teams/”+match.team2);
复赛;
})
});
返回tipp;
});
});
}
我不确定它是否做了它应该做的,因为第二级已经是一个可观察的,我无法查看输出

我在模板中使用此代码来获取数据:

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

{{(tipp.matchsub.team2sub | async)?.teamname}

输出没有显示错误,但也不起作用。谁能给我一个提示来显示第三级的数据呢?

我想说的是,尝试重新构建您的Firebase数据库-因为您已经进入了第三级的深度以获取一些数据,这应该会更平坦。

谢谢,但是Firebase真的不可能进行这种选择吗?使用sql,这将是一个非常简单的选择,有2个内部联接。。