【问题标题】:Return multiple collections from Firestore database with Angular使用 Angular 从 Firestore 数据库返回多个集合
【发布时间】:2019-11-11 01:38:52
【问题描述】:

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

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

【问题讨论】:

    标签: javascript angular ionic-framework google-cloud-firestore


    【解决方案1】:

    您可以使用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: []}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-01
      • 2020-06-04
      • 2021-04-11
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      相关资源
      最近更新 更多