如何在Firebase中存储HashMap以供离线使用

时间:2016-06-23 13:34:12

标签: java android gridview firebase

我有一张地图:

  Map<String, String> noidung = new HashMap<>();

Map从Firebase接收数据,并在Gridview中显示。一切都运作良好。 但是当手机离线时,我希望我加载的数据保留在Gridview上。 我的想法是将Map noidung存储到文件(我认为SharedPreference)以便脱机使用。我尝试了很多解决方案但失败了。

1 个答案:

答案 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如此出色: - )