在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()方法时完成该活动。
不幸的是,据我所知,没有事件会在数据已写入本地队列时触发。