Google cloud firestore 云Firestore批处理写入如何在脱机模式下工作

Google cloud firestore 云Firestore批处理写入如何在脱机模式下工作,google-cloud-firestore,batch-updates,Google Cloud Firestore,Batch Updates,在关于Cloud Firestore的文档中,我读到,即使用户的设备处于脱机状态,您也可以执行批处理写入 这是可以关闭的,还是默认情况下关闭的,因为文本显示Can。如果离线,CloudFireStore事务将失败,我希望批量写入也会失败 我感觉必须在OnCompleteListener中检查结果: 我认为应该包含一些关于这方面的解释,Firestore事务的存在使得从客户端执行原子读修改写操作成为可能。为了保证这一点,客户需要在线 批处理写入是一种有限类型的事务,它专门允许用户在脱机时以全有或全

在关于Cloud Firestore的文档中,我读到,即使用户的设备处于脱机状态,您也可以执行批处理写入

这是可以关闭的,还是默认情况下关闭的,因为文本显示Can。如果离线,CloudFireStore事务将失败,我希望批量写入也会失败

我感觉必须在OnCompleteListener中检查结果:


我认为应该包含一些关于这方面的解释,Firestore事务的存在使得从客户端执行原子读修改写操作成为可能。为了保证这一点,客户需要在线

批处理写入是一种有限类型的事务,它专门允许用户在脱机时以全有或全无的方式更改多个文档

如果您不需要或不想在脱机时进行写操作,只需使用常规事务:它将检查您是否联机,如果您脱机,它将失败。您没有义务阅读交易中的任何内容


为此目的,在OnCompleteListener中检查批写入的结果不起作用。您无法阻止该回调中的任何操作,因为只有在将写入成功应用于服务器后才会调用该回调。

Firestore事务的存在使得可以从客户端执行原子读取-修改-写入操作。为了保证这一点,客户需要在线

批处理写入是一种有限类型的事务,它专门允许用户在脱机时以全有或全无的方式更改多个文档

如果您不需要或不想在脱机时进行写操作,只需使用常规事务:它将检查您是否联机,如果您脱机,它将失败。您没有义务阅读交易中的任何内容


为此目的,在OnCompleteListener中检查批写入的结果不起作用。您无法阻止该回调中的任何内容,因为只有在写入成功应用于服务器后才会调用该回调。

感谢我从Firebase实时数据库迁移,在那里,我使用updateChildren在10个节点上执行全部或什么都不执行。正如您建议使用云Firestore事务一样,我认为一个只需要一个集合/文档,因此我必须运行10个事务??批处理写入是Firestore与updateChildren的等价物。您可以将10个更新放在一个批中,它们将在服务器上自动应用。您的问题表明,除非用户联机,否则您不希望继续此操作。如果是这种情况,那么就使用事务而不是批处理写入,因为它会强制执行该要求。任何一种方法都允许您一次操作多个文档。好的,我看到现在事务可以处理10个不同的文档。Thanks@GilGilbertFirestore事务的存在使得从客户端执行原子读修改写操作成为可能。-云功能如何?@gilbert在脱机模式下编写批处理写入后,我必须隐藏一个按钮,当OnCompleteListener无法脱机工作时如何操作?谢谢,我正在从Firebase realtime数据库迁移,在那里,我使用updateChildren在10个节点上执行全部或任何操作。正如您建议使用云Firestore事务一样,我认为一个只需要一个集合/文档,因此我必须运行10个事务??批处理写入是Firestore与updateChildren的等价物。您可以将10个更新放在一个批中,它们将在服务器上自动应用。您的问题表明,除非用户联机,否则您不希望继续此操作。如果是这种情况,那么就使用事务而不是批处理写入,因为它会强制执行该要求。任何一种方法都允许您一次操作多个文档。好的,我看到现在事务可以处理10个不同的文档。Thanks@GilGilbertFirestore事务的存在使得从客户端执行原子读修改写操作成为可能。-云功能呢?@gilbert在脱机模式下编写批处理写入后,我必须隐藏一个按钮,当OnCompleteListener无法脱机工作时,该如何操作?
batch.commit().addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        // offline/online?? 
    }
});