通过使用缓存减少Firebase Cloud Firestore读取

时间:2020-02-24 10:55:54

标签: angular firebase google-cloud-firestore

我正在使用google firebase cloud firestore和Angular 8制作网络应用。我经常使用不同组件中要求的相同列表。减少读取次数的最佳方法是什么。

  • 缓存 如果列表在缓存中可用,firebase云Firestore会自动使用缓存吗? 当前,我正在使用AngularFirestoreModule.enablePersistence(),如果没有Internet连接,这会将数据从高速缓存中删除。即使有互联网连接,也可以从缓存中获取数据吗?

  • 将列表另存为全局变量 将列表存储在全局变量中是个好主意吗?我会将第一次请求的列表保存在全局变量中,第二次请求列表时,请使用全局变量,而不是从firestore中检索列表。

什么是最好的解决方案,或者还有其他解决方案?

提前谢谢!

1 个答案:

答案 0 :(得分:1)

您实际上可以在get的选项中配置要使用的源,无论您是否离线都可以,选项为'cache''default''server',您可以在此documentation中获得更多更适合您需求的详细信息,用法如您在此second documentation的示例中所见:

var docRef = db.collection("cities").doc("SF");
var getOptions = {
   source: 'cache'
};
docRef.get(getOptions).then(function(doc) {
   // Do something
})

此外,您可以选中enabling offline data以设置适当大小的缓存。

如果您使用的是Firestore的缓存选项,那么使用列表的本地副本不会带来太大的价值,因为它们基本上会做同样的事情。

让我知道这是否对您有帮助。