Ich entwickle eine Angular2-Anwendung mit Firebase als Backend. Auf einer Unterseite möchte ich einige Aufgaben für eine bestimmte Woche anzeigen, die durch einen Routenparameter spezifiziert sind.Wie kann man eine Firebase-Liste in AngularFire2 richtig abfragen?
Ich bin ein BehaviorSubject
als Parameter an die AngularFire2 die folgende Art und Weise abfragen mit:
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");
Hier ist die Firebase Abfrage:
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();
}
}
Leider ist die Firebase taskTemplates$
beobachtbar ist nicht zurückkehren irgendwelche Daten für die gegebene weekId.
Ich nahm an, dass sobald die weekId
durch Abfrage der Route Parameter gesetzt wird, würde die Liste es als Abfrageparameter erhalten und die Daten zurückgeben, die: { weekId: actualWeekId, ...}
.
EDIT Hinzugefügt ein Beispiel von Daten in Firebase gespeichert:
{
"-Kc_E0U4UOl9PPtxpzCM" : {
"description" : "asdfasdf",
"weekId" : "99f2"
},
"-Kc_E3wv3fhpUt56sM4u" : {
"description" : "another task",
"weekId" : "99f2"
}
}
Also, was ich tun möchte, ist, alle Datensätze für ein bestimmtes weekId
Können Sie auch eine Darstellung Ihrer Daten in die Frage einfügen? – cartant
@cartant Ich habe der Frage Beispieldaten hinzugefügt. Danke fürs Helfen! – paweloque