从QuerySnapshot获取数据

时间:2019-04-05 15:37:27

标签: typescript firebase google-cloud-firestore angularfire2

我想从我的Cloud Firestore获取数据。该集合称为“反馈”。以下代码有效

  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现在是我来自云存储区的反馈对象的数组。是否有可能获得可观察的结果? 获取数据的专业方法是什么?

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

1 个答案:

答案 0 :(得分:1)

  

是否有可能获得可观察的结果?

您可以从map导入rxjs/operators来更改响应。然后,您可以将其分配给一些可观察的对象。

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