paw*_*que 3 querying observable firebase firebase-realtime-database angularfire2
我正在开发一个使用Firebase作为后端的Angular2应用程序.在子页面上,我想显示由route参数指定的给定周的一些任务.
我通过BehaviorSubject以下方式使用a 作为AngularFire2查询的参数:
export class PrepareComponent implements OnInit {
private routeSub: any;
weekId = '';
private weekSubject: BehaviorSubject<any> = new BehaviorSubject('weekId');
taskTemplates$: FirebaseListObservable<TaskTemplate[]>;
constructor(private route: ActivatedRoute,
private router: Router,
private angularFire: AngularFire) {
// this.taskTemplates$ = angularFire.database.list("/taskTemplates");
Run Code Online (Sandbox Code Playgroud)
以下是Firebase查询:
this.taskTemplates$ = angularFire.database.list("/taskTemplates", {
query: {
equalTo: this.weekSubject
}
});
}
ngOnInit() {
this.routeSub = this.route.params.map(
(params: Params) => this.weekId = params[ 'weekid' ]
).subscribe(
weekId => this.weekSubject.next(weekId)
);
}
ngOnDestroy() {
this.routeSub.unsubscribe();
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,Firebase taskTemplates$observable没有返回给定weekId的任何数据.
我假设一旦weekId通过查询路由参数设置,列表将把它作为查询参数并返回具有:的数据{ weekId: actualWeekId, ...}.
编辑添加了存储在Firebase中的数据示例:
{
"-Kc_E0U4UOl9PPtxpzCM" : {
"description" : "asdfasdf",
"weekId" : "99f2"
},
"-Kc_E3wv3fhpUt56sM4u" : {
"description" : "another task",
"weekId" : "99f2"
}
}
Run Code Online (Sandbox Code Playgroud)
所以我想要的是获取给定的所有记录 weekId
Rob*_*Rob 20
如果有人现在像我这样的困难,这可能会帮助你们:
db.list('/items', ref => ref.orderByChild('size').equalTo('large'))
Run Code Online (Sandbox Code Playgroud)
请参考 https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
欲获得更多信息!
| 归档时间: |
|
| 查看次数: |
11425 次 |
| 最近记录: |