我有一张地图:
Map<String, String> noidung = new HashMap<>();
Map
从Firebase接收数据,并在Gridview
中显示。一切都运作良好。
但是当手机离线时,我希望我加载的数据保留在Gridview上。
我的想法是将Map noidung
存储到文件(我认为SharedPreference)以便脱机使用。我尝试了很多解决方案但失败了。
答案 0 :(得分:9)
看看这个:
“Response for preflight has invalid HTTP status code 404”
来自文档:
Firebase应用会自动为您处理临时网络中断。离线时仍然可以使用缓存数据,并且在恢复网络连接时将重新发送您的写入。启用磁盘持久性使我们的应用程序即使在应用程序重新启动后也能保持其所有状态。我们只需一行代码即可启用磁盘持久性。
https://firebase.google.com/docs/database/android/offline-capabilities
此外,您可以保持特定位置同步:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
启用持久性设置必须是对Firebase API的第一次调用。所以在你做任何查询/等之前。一个好的位置在你的DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores");
scoresRef.keepSynced(true);
子类中:
Application
请勿忘记更新您的清单:
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
}
真的那么容易。这就是Firebase如此出色: - )