【发布时间】:2020-08-05 18:46:29
【问题描述】:
我在 Firebase 的 Cloud Firestore 中的收藏有 1500 多条记录。我在我的角度应用程序的网格中显示该数据。问题是,每当我刷新页面或开发应用程序时,每次更改/保存操作时,它都会重新编译并重新加载页面,这会导致 1500 个文档读取操作。我假设 firebase 会自动缓存结果集,而 snapshotChanges() 只会返回新的/更新的记录,但在这里我没有看到任何缓存机制。下面是我用来从 Firebase 获取数据的代码。
getAllProducts(): Observable<Product[]> {
return this.firestore.collection('Products').snapshotChanges().pipe(map(actions => {
return actions.map(x => {
const obj: any = x.payload.doc.data();
obj.id = x.payload.doc.id;
return obj as Product;
});
}));
}
我认为这是非常常见的用例,但很可能我遗漏了一些东西。请建议我如何减少读取操作的数量,同时保持对 CloudFirestore 中我的收藏的可观察性?
谢谢
【问题讨论】:
标签: angular firebase google-cloud-firestore