我在RecycleView
中使用4个MainActivity
,它们使用FirestoreRecyclerAdapter
从Cloud Firestor加载数据。现在,我想使用Room
为ReceiptActivity
中的用户创建收据。
我做了所有工作人员,但是尝试删除和更新Room
中的项目时出了点问题。我的应用程序崩溃了,所以我问我的操作是否与之冲突?如果没有,请指导我进行最佳实践。预先感谢。
答案 0 :(得分:0)
使用Cloud Firestore时,offline persistence:
对于Android和iOS,默认情况下启用离线持久性。要禁用持久性,请将PersistenceEnabled选项设置为false。
这意味着Firestore将在用户设备上创建整个数据库的本地(内部)副本。因此,无需添加额外的本地数据库也可以实现您想要获得的相同功能,因为默认情况下该数据库已经存在。
此外,如果您只需要从缓存中获取数据,则可以借助DocumentReference.get(Source source)和Query.get(Source source)方法来实现。
默认情况下,
get()
会尝试通过等待服务器中的数据来提供最新数据,但是它可能会返回缓存的数据,或者如果您处于脱机状态并且无法访问服务器,则会失败。可以通过Source参数更改此行为。
因此,我们现在可以将参数作为参数传递给DocumentReference
或源的Query
,以便我们可以强制从server only
,chache only
或尝试服务器并回退到缓存。