用于 web 的 firebase 实时数据库是否具有 PWA 的离线功能
Does firebase realtime database for web have offline capability for PWA
我有一个 Web 项目,我在其中使用了很多 firebase 实时数据库,现在我想将我的应用程序转换为 PWA,所以我想要两件事
- 当用户安装应用程序时,我想缓存数据库的某些部分
- 当用户离线并转到试图从 firebase 下载内容的页面时,我希望从缓存中返回此数据
- 当用户进行一些操作时,通常是在线的,我将数据保存在数据库中,我希望 firebase 将其保存到 "cache" 并且当连接出现时 - 将其保存到数据库
看起来 android 的 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
// ...
}
});
我 wrote an article(关于 PWA 系列的一部分)我解释了如何使用 Cloud Firestore 离线持久性来克服 CACHE API 限制,因为它只允许缓存 GET 请求。
我有一个 Web 项目,我在其中使用了很多 firebase 实时数据库,现在我想将我的应用程序转换为 PWA,所以我想要两件事
- 当用户安装应用程序时,我想缓存数据库的某些部分
- 当用户离线并转到试图从 firebase 下载内容的页面时,我希望从缓存中返回此数据
- 当用户进行一些操作时,通常是在线的,我将数据保存在数据库中,我希望 firebase 将其保存到 "cache" 并且当连接出现时 - 将其保存到数据库
看起来 android 的 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
// ...
}
});
我 wrote an article(关于 PWA 系列的一部分)我解释了如何使用 Cloud Firestore 离线持久性来克服 CACHE API 限制,因为它只允许缓存 GET 请求。