所以我断开了我的互联网连接并测试了我的应用。当我向数据库添加内容时,我会使用默认的OnSuccessListener
检查是否已成功添加。但是,即使我的应用程序处于飞行模式或没有互联网连接,也会调用OnSuccessListener
,而OnFailureListener
则不会。{/ p>
这很奇怪,不应该被召唤。
代码:
database.child("blah").child(key).setValue(objects).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(@NonNull Void T) {
//Do whatever
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//display error message
}
});
但由于某种原因,OnSuccessListener
仍被调用。这令人难以置信的刺激。即使我添加OnCompleteListener
而不是if(task.isSuccess())
,它也是如此。
答案 0 :(得分:2)
正如文件所述:
Firebase应用即使在离线时也会保持响应,因为Firebase 实时数据库SDK将您的数据保存到磁盘。一旦连通性 重新建立后,客户端设备会收到它遗漏的任何更改, 将其与当前服务器状态同步。
因此您的数据已成功添加到磁盘,一旦您上线,它将同步到云。