如何将Room与多个FirestoreRecyclerAdapter一起使用?

时间:2019-02-09 06:44:21

标签: java android firebase google-cloud-firestore android-room

我在RecycleView中使用4个MainActivity,它们使用FirestoreRecyclerAdapter从Cloud Firestor加载数据。现在,我想使用RoomReceiptActivity中的用户创建收据。

我做了所有工作人员,但是尝试删除和更新Room中的项目时出了点问题。我的应用程序崩溃了,所以我问我的操作是否与之冲突?如果没有,请指导我进行最佳实践。预先感谢。

Error message

1 个答案:

答案 0 :(得分:0)

使用Cloud Firestore时,offline persistence

  

对于Android和iOS,默认情况下启用离线持久性。要禁用持久性,请将PersistenceEnabled选项设置为false。

这意味着Firestore将在用户设备上创建整个数据库的本地(内部)副本。因此,无需添加额外的本地数据库也可以实现您想要获得的相同功能,因为默认情况下该数据库已经存在。

此外,如果您只需要从缓存中获取数据,则可以借助DocumentReference.get(Source source)Query.get(Source source)方法来实现。

  

默认情况下,get()会尝试通过等待服务器中的数据来提供最新数据,但是它可能会返回缓存的数据,或者如果您处于脱机状态并且无法访问服务器,则会失败。可以通过Source参数更改此行为。

因此,我们现在可以将参数作为参数传递给DocumentReference或源的Query,以便我们可以强制从server onlychache only或尝试服务器并回退到缓存。