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