我想确保我可以离线保存数据。如何使用Firestore同步Room中的数据?当插入到Room Firestore中的内容也必须更新时。
发布于 2019-06-16 21:37:28
Firestore已经包含了一个持久层,你根本不需要Room。您可以像这样启用离线支持:
val settings = FirebaseFirestoreSettings.Builder()
.setPersistenceEnabled(true)
.build()
db.firestoreSettings = settings与Room相比,使用Firestore for persistance有很多好处(除了节省的工作量和潜在的bug)。例如,如果你加载了一个城市的所有餐厅,然后离线,然后运行一个查询,比如最好的餐厅,那么查询仍然会工作,并使用缓存的数据,即使查询在联机时从未运行过。
您还可以配置Firestore使用的缓存大小,以满足您的需求。文档以LRU的方式进行缓存,因此当缓存满时,未使用时间最长的文档将首先从缓存中删除。
最佳实践是始终使用快照侦听器。如果您在脱机模式下启动查询,并且设备重新联机,Firestore将自动在服务器上再次运行查询,并将更新后的结果返回到您的UI。
有关更多详细信息,请查看docs和this video about Firestore offline mode。
https://stackoverflow.com/questions/56618870
复制相似问题