使用Angular从Firestore数据库返回多个集合

我有一个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];
}

我在页面上获取一个集合的方式似乎不适用于数组。最好的方法是什么?

sl0359 回答:使用Angular从Firestore数据库返回多个集合

您可以使用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: []}
本文链接:https://www.f2er.com/3126928.html

大家都在问