我希望我的应用程序在本地脱机保存数据。每当我重新打开应用程序时他们不是互联网。它应该工作
在onCreate of Application我打电话
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
只要应用程序在启用互联网时启动,离线capablilites
即可正常运行。如果我关闭应用并重新启动,则数据不会同步。
也尝试了
keepSynched(true);
但只要你杀了应用程序。 它失去了连接,没有可用的离线数据。如何在android中执行持久性数据
答案 0 :(得分:2)
您必须在希望将检索到的数据存储在本地的每个位置调用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");
...
答案 1 :(得分:0)
FirebaseDatabase.getInstance().setPersistenceEnabled(true)
只应在应用启动或初始化期间调用一次。
我在 iOS 上测试过,它运行良好,但在 android 中它不起作用。