addOnFailureListener无法在脱机模式下工作以及网络问题



addOnFailureListner不适用于add((数据,但addOnFailure Listner适用于get((。

这不起作用

WorkPlaceRef.add(DATA).addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
@Override
public void onComplete(@NonNull Task<DocumentReference> task) {
//Successfully created - This one triggers when I turn on wifi again.
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Error - This addonFailureListner is not working when there are no network.
}
});

这是有效的

WorkPlaceRef.get().addOnCompleteListener(new OnCompleteListener<DocumentReference>() {
@Override
public void onComplete(@NonNull Task<DocumentReference> task) {
//Successfully received - This one triggers when I turn on wifi again.
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Error - this addonFialureListner triggers when there is no network.
}
});

离线时尝试写入数据并非失败。Firestore SDK将首先在本地脱机缓存中写入数据,并最终在应用程序重新联机时与服务器同步写入数据。无论何时,成功侦听器都会被调用。

只有当由于缺乏连接而无法重试某些问题时,才会发生写入失败,例如违反安全规则,或超过数据库的某些记录限制。

如果您想知道某些文档数据是否尚未与服务器同步,可以检查其元数据以了解写入是否处于挂起状态。

最新更新