Android 从Firestore本地保存数据

Android 从Firestore本地保存数据,android,firebase,android-recyclerview,google-cloud-firestore,Android,Firebase,Android Recyclerview,Google Cloud Firestore,在本地保存数据(从Firestore获取数据后)的最佳方式是什么 我不想再重新加载一次,只想得到更新。现在,每次打开带有新闻的片段时,我都必须重新加载数据。现在所有的工作,但它激怒了我时,重新加载出现 我正在使用onSuccessListener和OnCompleteListener ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { ... } ref.get().addOnSuccess

在本地保存数据(从Firestore获取数据后)的最佳方式是什么

我不想再重新加载一次,只想得到更新。现在,每次打开带有新闻的片段时,我都必须重新加载数据。现在所有的工作,但它激怒了我时,重新加载出现

我正在使用
onSuccessListener
OnCompleteListener

ref.get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { ... }
ref.get().addOnSuccessListener(新的OnSuccessListener(){…}

对于Android和iOS,默认情况下已启用。这意味着Firestore会创建数据库的本地副本,以便即使脱机也可以进行查询。因此,如果您有一个数据库,并且没有任何更改,则您将查询数据库的缓存版本。当有新数据可用时,仅加载该数据。

对于Android和iOS,我默认情况下已启用。这意味着Firestore将创建数据库的本地副本,以便即使脱机也可以对其进行查询。因此,如果您有一个数据库,并且没有任何更改,则您将查询数据库的缓存版本。当有新数据可用时,仅加载该数据。

我知道脱机功能。我想在以后保存数据r加载,因为下一次我打开片段数据时再次下载,需要时间同意,它有离线支持,但我怀疑FireStore是否知道“离线优先策略”。当您使用
get()时
call,正如我看到您的代码一样,这意味着您只获取了一次数据。因此,第二次打开活动时,您将从缓存而不是Firebase服务器获取数据。但不要将Cloud Firestore用作脱机数据库。它实际上是一个在线数据库,可以在短时间到中断连接的中间阶段正常工作ed.如Chintan Soni在评论中所述,如果您只需要一个脱机数据库,则只需使用Room。是否有办法将该数据保存到内部存储器中,而不是将其保存在缓存中。如果在用户进行深度清理时该数据仍保留在缓存中,则缓存可能会被删除。@CodeREDInnovations如果需要,您可以将数据保存到本地数据库中这一点。我知道离线功能。我想在加载后保存数据,因为下次我打开碎片数据时,它会再次下载,并且需要时间。它有离线支持,但我怀疑FireStore是否知道“离线优先策略”。当您使用
get()时
call,正如我看到您的代码一样,这意味着您只获取了一次数据。因此,第二次打开活动时,您将从缓存而不是Firebase服务器获取数据。但不要将Cloud Firestore用作脱机数据库。它实际上是一个在线数据库,可以在短时间到中断连接的中间阶段正常工作ed.如Chintan Soni在评论中所述,如果您只需要一个脱机数据库,则只需使用Room。是否有办法将该数据保存到内部存储器中,而不是将其保存在缓存中。如果在用户进行深度清理时该数据仍保留在缓存中,则缓存可能会被删除。@CodeREDInnovations如果需要,您可以将数据保存到本地数据库中Firebase并不是为了遵循离线优先策略而设计的,这正是您所需要的。我在您的案例中看到的解决方案是,您还必须使用SQLite数据库以及Firestore,并自行设计整个模型层,以提供“离线优先策略”.Firebase不是为遵循离线优先策略而设计的,这正是您所需要的。在您的案例中,我可以看到的解决方案是,您还必须使用SQLite数据库以及Firestore,并自行设计整个模型层,以提供“离线优先策略”。