android - Firestore 离线缓存

标签 android firebase google-cloud-firestore

我正在构建一个 Android 应用程序,它必须离线工作数周,但可以在它上线时立即与远程数据库同步。

我的问题是 Firestore 可以成为一个不错的选择吗? Firestore 会将其离线缓存保留多长时间?

最佳答案

Firestore 可以配置为持久保存数据以供此类断开/离线使用。我建议您阅读 enable offline persistence文档中的部分,其中包含启用此功能的示例:

FirebaseFirestoreSettings settings = new FirebaseFirestoreSettings.Builder()
        .setPersistenceEnabled(true)
        .build();
db.setFirestoreSettings(settings);

这个持久化其实Android和iOS都是默认开启的,所以不需要上面的调用。

无论您是否已连接,与数据库交互的 Android 代码都是相同的,因为 SDK 的工作原理相同。如果您想检测数据是否来自缓存(因此可能是陈旧的),请阅读 Listen to offline data 部分。在文档中。

缓存中的数据在一定时间后不会过期。从缓存中删除数据的唯一两个原因:

  1. 数据已从服务器中删除,在这种情况下,客户端会将其从磁盘缓存中删除。
  2. 客户端需要清除其磁盘缓存,以便为更新的数据腾出空间。

关于android - Firestore 离线缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771332/

相关文章:

java - 注册用户 - 添加字段

android - 运动事件的隐形 View 检测

firebase - Actions on Google - 登录并交换 UID 的访问 token

node.js - 条纹和 Firestore

javascript - 如何将来自 firestore 的动态数据放入函数 where() 并使用 snap.size 来计算要在图中传递的总查询?

android - 升级到Android Studio后出现异常 141.1972460

java - 将 Switch 语句与字符串一起使用是否安全

Android 应用未收到 firebase 通知

javascript - 如何在 Google Cloud Function 中获取原始请求正文?

javascript - 如何使用 Vue.js 将多个图像上传到 firebase v9 存储并获取所有下载 URL 以在云 firestore 数据库中更新它