当使用官方Web SDK进行Firestore缓存时,它是否优化读取操作,以便仅在上次读取后文档发生更改时才向服务器“发送”读取请求? (因此,每次尝试都不会再产生1次文档读取)
要详细说明,请考虑以下情形:
在第4步中,即使没有更改,Firestore也会默认从服务器请求文档吗? (这意味着,每当用户导航到个人资料页面时,它将作为价格的1个额外读数)
如果是,是否可以配置Firestore,使其仅使用缓存的对象,并且仅在服务器上的对象更改时更新它?该怎么做?
答案 0 :(得分:1)
默认情况下,Firestore SDK disables local persistence of cached data for web clients(但默认情况下为Android和iOS启用)。如果要启用持久性,请遵循documentation
中的说明firebase.firestore().enablePersistence()
.catch(function(err) {
if (err.code == 'failed-precondition') {
// Multiple tabs open, persistence can only be enabled
// in one tab at a a time.
// ...
} else if (err.code == 'unimplemented') {
// The current browser does not support all of the
// features required to enable persistence
// ...
}
});
// Subsequent queries will use persistence, if it was enabled successfully
如果文档在本地缓存中是最新的,则不会向您收取文档读取费用。