【发布时间】:2019-11-22 11:05:53
【问题描述】:
所以我在我的活动中初始化了 firebase。
mFirebase = FirebaseDatabase.getInstance();
mDatabaseReference = mFirebase.getReference("buses");
mBusReference = mDatabaseReference.child(mSelectedBusModel.getRegistrationNo());
mValueEventListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
...
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.e("Data", "Cancelled");
databaseError.toException().printStackTrace();
}
}
mBusReference.addValueEventListener(mValueEventListener);
我有一个扩展 Application 的单例,并且在 onCreate 方法中我启用了 firebase 持久性:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
现在我的问题是当我离线并重新打开我的活动时,数据没有被缓存,没有加载。我已阅读文档并完成了提到的所有操作,但仍然无法正常工作。
我想要做的是让我的应用能够缓存已经从 firebase 加载的数据,因此即使在应用关闭并重新打开后它也始终可用。
请注意,我的控制台中不会显示任何错误。
【问题讨论】:
-
调用
setPersistenceEnabled(true)意味着 Firebase 将它最近看到的任何数据存储到磁盘。在您的测试中,您的应用是否在您离线之前加载了数据? -
是的。我确定了。
-
嗯....我不确定为什么在这种情况下它不会加载。您共享的代码乍一看还不错。你可能想enable debug logging 并检查输出是否有可疑之处。
标签: android firebase firebase-realtime-database