首页 > 解决方案 > 离线 Firebase 数据库不工作

问题描述

我希望我的应用离线保存本地数据。每当我在他们没有互联网的情况下重新打开应用程序时。它应该工作

在我调用的应用程序的 onCreate 中

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

capablilites只要在有互联网的情况下启动应用程序,离线就可以工作。如果我关闭应用程序并重新启动它,数据不会同步

也试过

keepSynched(true);

但只要你杀了这个应用程序。它失去连接并且没有可用的离线数据。如何在android中做持久化数据

标签: androidfirebasefirebase-realtime-databasepersistence

解决方案


您必须调用FirebaseDatabase.getInstance().setPersistenceEnabled(true);您希望将检索到的数据存储在本地的每个位置。因此,您应该像这样创建一个辅助类:

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

public class FirebaseUtils {
    private static DatabaseReference mDatabaseRef;
    private static FirebaseDatabase database;
    public static DatabaseReference getDatabaseRef() {
        if (mDatabaseRef == null) {
            getDatabase();
            mDatabaseRef = database.getReference();
            // ...
        }
        return mDatabaseRef;
    }

    public static FirebaseDatabase getDatabase() {
        if (database == null) {
            database = FirebaseDatabase.getInstance();
            database.setPersistenceEnabled(true);
            // ...
        }
        return database;
    }
}

然后,在您的活动和片段以及您想要执行数据库操作的其他地方,您初始化 DatabaseReference 对象,如下所示:

private DatabaseReference mDatabase;
private DatabaseReference mPlaceRef;

....

mDatabase = FirebaseUtils.getDatabaseRef();
mPlaceRef = mDatabase .child("places");

...

推荐阅读