android - 离线 Firebase 数据库不工作
问题描述
我希望我的应用离线保存本地数据。每当我在他们没有互联网的情况下重新打开应用程序时。它应该工作
在我调用的应用程序的 onCreate 中
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
capablilites
只要在有互联网的情况下启动应用程序,离线就可以工作。如果我关闭应用程序并重新启动它,数据不会同步。
也试过
keepSynched(true);
但只要你杀了这个应用程序。它失去连接并且没有可用的离线数据。如何在android中做持久化数据
解决方案
您必须调用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");
...
推荐阅读
- node.js - 如何用 express 解析 JWT?
- mysql - 如何在同一个表中使用 SELECT WEEK() 更新,多于 1 行 [mysql]
- c - 为什么循环有问题(pset2 替换)
- python - 类“property”没有定义“__getitem__”,因此不能在其实例上使用“[]”运算符
- c++ - constexpr constexpr 函数指针数组
- php - 我试图通过 PHP 创建一个表(“cats”)但无法访问数据库
- android - 在cardview中使用意图时没有响应
- angular - Angular 9 动画 - 如何在不将组件包装在新 div 中的情况下为组件的单个销毁设置动画?
- python-3.x - 尝试制作 Discord bot,收到以下错误:RuntimeError: SSL is not supported
- mysql - 无法打开表设置窗口并出现错误“为对象获取 DDL 时出错,未选择数据库”