批处理写入 - OnSuccess方法何时到达?

问题描述:

我看了documentation有关batched writes,但达到onSuccess方法时,我不解地问:批处理写入 - OnSuccess方法何时到达?

  1. 所有的写操作之后被处决。
  2. 完成所有写入操作后。
  3. 所有的写入都成功完成后。

或者以上都不是...

感谢。

一批写是原子,所以它要么成功完成所有写入,否则就会失败写入所有

所以一旦批量写入完成,如果它成功并且所有写入都已提交,它将调用onSuccess()方法,否则将调用onFailure()方法(如果未成功并且没有提交任何写入)。

+0

嗨迈克尔firebase是真棒,但它似乎干扰xcode中的调试:https://*.com/questions/46675100/cannot-debug-in-xcode-debug-info-from-this-module-will -be-不可用 - 在最DE/46829887#46829887。这是一个已知的问题? – Crashalot

+0

哇,我们的答案有完全相同的时间戳! – Grimthorr

与其他Firestore写入和读取操作一样,WriteBatch#commit()方法会生成并返回Task实例,该实例将在后台执行该工作。

如果任务成功完成,将会调用附加到此Task的成功侦听器。这有点像附加一个完整的监听器,然后检查任务结果是否成功。

BatchWrite的情况下,批处理中的所有写操作均作为单个原子单位提交,因此只有在所有写操作都成功后才会返回成功。