Firebase OnSuccessListener在失败时被调用

时间:2016-08-08 18:39:12

标签: android firebase firebase-realtime-database

所以我断开了我的互联网连接并测试了我的应用。当我向数据库添加内容时,我会使用默认的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()),它也是如此。

1 个答案:

答案 0 :(得分:2)

正如文件所述:

  

Firebase应用即使在离线时也会保持响应,因为Firebase   实时数据库SDK将您的数据保存到磁盘。一旦连通性   重新建立后,客户端设备会收到它遗漏的任何更改,   将其与当前服务器状态同步。

因此您的数据已成功添加到磁盘,一旦您上线,它将同步到