在Firebase中,当应用程序处于在线模式时,将调用addOnSuccessListener方法。但是在离线模式下不会调用它。以下是我的代码:

mFirebaseDatabase.setValue(newAreaModel)
    .addOnSuccessListener(new OnSuccessListener<Void>()
    {
        @Override
        public void onSuccess(Void aVoid)
        {
            finish();
        }
    })
    .addOnFailureListener(new OnFailureListener()
    {
        @Override
        public void onFailure(@NonNull Exception e)
        {
            Toast.makeText(getApplicationContext(), "Something went Wrong!", Toast.LENGTH_SHORT).show();
        }
    });


现在,我想在离线模式下调用setValue()方法时完成该活动。

谁能建议我该怎么做?

最佳答案

当网络连接丢失(用户设备上没有网络连接)时,不会触发onSuccess()onFailure()方法。这一直是Firebase实时数据库中的行为。只有在Firebase服务器上提交的写入才被挂起,才被视为成功或失败。


  现在,我想在离线模式下调用setValue()方法时完成该活动。


不幸的是,据我所知,没有事件会在数据已写入本地队列时触发。

07-27 13:24