我有一个Ionic应用程序,在服务上我声明了一个函数,该函数应该从Firestore数据库获取多个集合,并且必须返回所有集合。
我设法在服务部分获得了一个这样的收藏:
read_Divisions() {
return this.firestore.collection('divisions').snapshotChanges();
}
这是页面打字稿
ngOnInit() {
this.crudService.read_Divisions().subscribe(data => {
this.Divisions = data.map(e => {
return {
Name: e.payload.doc.data()['name'],
};
})
});
}
这是我对多个集合的服务功能的想法:
read_Divisions() {
let divisions = this.firestore.collection('divisions').snapshotChanges();
let teams = this.firestore.collection('teams').snapshotChanges();
return [divisions,teams];
}
我在页面上获取一个集合的方式似乎不适用于数组。最好的方法是什么?
您可以使用forkJoin等待多个可观察对象,在这种情况下,将进行两个单独的查询,因此代码可能看起来像这样:
readDivisions() {
return forkJoin({
divisions: this.firestore.collection('divisions').snapshotChanges(),
teams: this.firestore.collection('teams').snapshotChanges()
});
}
在代码的另一个位置,您将订阅readDivisions
:
readDivisions.subscribe(result => console.log(result));
会很像:
{divisions: [], teams: []}