我正在使用google firebase cloud firestore和Angular 8制作网络应用。我经常使用不同组件中要求的相同列表。减少读取次数的最佳方法是什么。
缓存 如果列表在缓存中可用,firebase云Firestore会自动使用缓存吗? 当前,我正在使用AngularFirestoreModule.enablePersistence(),如果没有Internet连接,这会将数据从高速缓存中删除。即使有互联网连接,也可以从缓存中获取数据吗?
将列表另存为全局变量 将列表存储在全局变量中是个好主意吗?我会将第一次请求的列表保存在全局变量中,第二次请求列表时,请使用全局变量,而不是从firestore中检索列表。
什么是最好的解决方案,或者还有其他解决方案?
提前谢谢!
答案 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的缓存选项,那么使用列表的本地副本不会带来太大的价值,因为它们基本上会做同样的事情。
让我知道这是否对您有帮助。