在Firestore中的查询上使用诸如valueChanges之类的东西

时间:2018-06-21 19:05:52

标签: angular typescript firebase rxjs google-cloud-firestore

我希望能够获得有关所执行查询的实时更新。如果文档符合特定条件,我就会从集合中提取文档,有没有办法像我使用.valueChanges那样获取实时更新?我现在使用的似乎只是返回一个空的可观察值。这是我的代码:

transactions: Observable<Transaction[]>;

  private getTransactions() {
    let transactionsCollection = this.firestoreProvider.getTransactionsCollection();

    this.transactions = Observable.create(observer => transactionsCollection
        .ref.where('category', '==', this.category.name).onSnapshot(observer));

    this.transactions.subscribe();
  }

,然后在我的HTML中:

<div *ngFor="let t of transactions">{{ t.amount }}</div>

如果仅在查询上使用forEach,我就可以显示这些值,但是如果在Firestore中修改了一个值,它将创建另一个数组。然后我有原始值和新值,而不仅仅是新值。

编辑:我能够得到它返回正确的文档,但是当firestore中的值更改时,它不会改变,这是我现在拥有的:

this.firestoreProvider.getTransactionsCollection().ref.where('category', '==', this.category.name).onSnapshot((querySnapshot) => {
      querySnapshot.forEach((doc) => {
        this.transactions.push(doc.data().amount);
      });
    });

0 个答案:

没有答案