在关于Cloud Firestore Batched writes的文档中,我读到“即使用户的设备处于脱机状态,您也可以执行批量写入”。
这可以关闭或默认关闭,因为文字说“可以”。如果Cloud Firestore事务处于脱机状态,它将失败,我希望批处理写入执行相同的操作
我觉得我必须在OnCompleteListener
:
batch.commit().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// offline/online??
}
});
我认为Doc应该包含对此
的一些解释答案 0 :(得分:2)
存在Firestore事务,可以从客户端执行原子读 - 修改 - 写操作。为了保证客户需要在线保证。
批量写入是一种有限类型的事务,专门用于允许用户即使在离线状态下也能够以全有或全无的方式更改多个文档。
如果您不需要或希望能够在离线时写入,只需使用常规交易:它将处理您是否在线的检查,如果您处于离线状态则会失败。您没有义务阅读交易中的任何内容。
在OnCompleteListener
中检查批量写入的结果不适用于此目的。您无法阻止该回调中的任何内容,因为只有在写入已成功应用于服务器后才会调用它。