我希望能够获得有关所执行查询的实时更新。如果文档符合特定条件,我就会从集合中提取文档,有没有办法像我使用.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);
});
});