Angular 三级嵌套查询
我正在尝试使用以下查询从Firebase获取结果: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)
// 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个内部联接。。