【发布时间】:2016-08-18 14:53:31
【问题描述】:
在我的应用程序中,我只是尝试通过在以下代码中添加ListenerForSingleValueEvent 从我的Firebase 数据库中检索阅读文章:
myRef.child("passages").child(passageNum).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println("ON DATA CHANGE");
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("DATABASE ERROR");
FirebaseErrorHandler.handleDatabaseError(databaseError.getCode(), ReadingActivity.this);
}
});
当有互联网连接时,它工作得很好。但是,当我故意关闭互联网连接时,onDataChange 和 onCancelled 都不会被调用。这非常令人沮丧,因为databaseError.getCode() 中的两个错误代码与网络连接问题有关。
如果由于没有互联网而无法获取此数据,我想至少让用户知道,而不是让此侦听器在屏幕不断加载的情况下挂起。有没有办法解决这个问题?我只能求助于Firebase's REST API 吗?至少对于 RESTful 网络请求,它们会让您知道连接是否失败。
【问题讨论】:
标签: android firebase firebase-realtime-database