我有一个奇怪的地方,OnSuccessListener
或OnFailureListener
不再被调用。一切正常,但是当我打开移动数据并呼叫OnSuccessListener
或OnFailureListener
以外的Wifi时。
如果我在下面的代码ref.set(update).....
上放置一个断点,则确实命中了断点,但没有OnSuccessListener
或OnFailureListener
触发
Map<String, String> update = new HashMap<>();
update.put(ByteData.DATA, data);
DocumentReference ref = firestore
.collection(DEVICE_DATA)
.document(FirestoreManager.getInstance().getUserId())
.collection(DEVICE_DATA_STREAM)
.document(batteryEntity.getEntityId());
ref.set(update).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// do some stuff
}
}).addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
// do some stuff
}
});
最佳答案
当我打开移动数据和Wifi上网时,均未调用OnSuccessListener
或OnFailureListener
那是预期的行为。仅当数据已写入服务器(或被服务器拒绝)后,才会调用完成侦听器。
侦听器不会为本地写入操作触发。如果本地写操作失败,则客户端将引发常规异常。