Я разрабатываю приложение Angular2 с Firebase в качестве backend. На подстранице я хочу отобразить некоторые задания на заданную неделю, которые задаются параметром маршрута.Как правильно запросить список Firebase в AngularFire2?
Я использую BehaviorSubject
в качестве параметра к 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");
Вот 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();
}
}
К сожалению, Firebase taskTemplates$
наблюдаемыми не возвращается любые данные за данную неделю.
Я предположил, что после того, как weekId
будет задан путем запроса параметров маршрута, список получит его как параметр запроса и вернет данные, которые имеют: { weekId: actualWeekId, ...}
.
EDIT Добавлен пример данных, хранящихся в Firebase:
{
"-Kc_E0U4UOl9PPtxpzCM" : {
"description" : "asdfasdf",
"weekId" : "99f2"
},
"-Kc_E3wv3fhpUt56sM4u" : {
"description" : "another task",
"weekId" : "99f2"
}
}
Так что я хочу сделать, это получить все записи для данного weekId
Не могли бы вы также включить представление своих данных в вопрос? – cartant
@cartant Я добавил примеры данных на вопрос. Спасибо за помощь! – paweloque