我正在构建一个 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 部分。在文档中。
缓存中的数据在一定时间后不会过期。从缓存中删除数据的唯一两个原因:
- 数据已从服务器中删除,在这种情况下,客户端会将其从磁盘缓存中删除。
- 客户端需要清除其磁盘缓存,以便为更新的数据腾出空间。
关于android - Firestore 离线缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771332/