从 QuerySnapshot 获取数据

Obtain data from QuerySnapshot

我想从我的云 Firestore 获取数据。该集合称为 'feedback'。以下代码有效

  constructor(private fireStore: AngularFirestore) {
    this.fireStore.collection('feedback')
                  .get()
                  .subscribe((item: firebase.firestore.QuerySnapshot) => {
      this.feedbackItems = item.docs.map((dataItem: firebase.firestore.QueryDocumentSnapshot) => dataItem.data());
    });
  }

与导入

import { AngularFirestore } from '@angular/fire/firestore';

但是 this.feedbackItems 现在是来自云 firestore 的我的反馈对象的数组。是否有可能获得可观察的结果? 获取数据的专业途径是什么?

我在 Whosebug 上找到了几个解决方案,但是有些功能不可用(我猜是因为使用了不同的库或 JavaScript?)

Is it possible to obtain the results as an observable?

您可以从 rxjs/operators 导入 map 来改变响应。然后你可以将它分配给一些可观察的。

this.feedbackItemObservable = this.fireStore.collection('feedback')
  .get()
  .pipe(map((item:firebase.firestore.QuerySnapshot) => {
    return item.docs.map((dataItem: firebase.firestore.QueryDocumentSnapshot) => dataItem.data());
  }));