我有一个Web项目,我在其中使用了很多firebase实时数据库,现在我想将我的应用程序转换为PWA,所以我想做两件事
- 当用户安装应用程序时,我想缓存数据库的某些部分
- 当用户离线并转到尝试从Firebase下载内容的页面时,我希望从缓存中返回此数据
- 当用户执行某些操作(通常是在线操作(时,我将数据保存在数据库中,我想Firebase将其保存到"缓存"中,当连接出现时 - 将其保存到数据库
看起来安卓的火力基地可以做到这一点 (ttps://firebase.google.com/docs/database/android/offline-capabilities(
但是当我阅读网络文档时 - 我不确定这是否可能 (https://firebase.google.com/docs/database/web/offline-capabilities(
Firebase 实时数据库仅针对移动 (iOS/Android( 开发提供离线功能。如果您需要离线持久性,那么您应该选择Cloud Firestore。
您将收到您在问题中指出的确切功能。每当用户读取某些文档时,这些文档都会在本地缓存,甚至可以脱机使用(完整的 CRUD 操作可用(。有 40MB 的缓存阈值,之后将删除最旧的文档。您可以更改此值,增加或减少缓存量。
要启用它:
//For mobile development, it is turned on by default
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
// ...
}
});
我写了一篇文章(关于PWA的系列文章的一部分(,其中解释了如何使用Cloud Firestore离线持久性来克服CACHE API限制,因为它只允许缓存GET请求。