Rom*_*hin 5 firebase google-cloud-firestore
批量写入中的操作是否保证按照其调用顺序执行?根据文档尚不清楚。是否强制只能是 (#0) -> (#1) -> (#2) 而不是其他方式?
const batch = db.batch();
const nycRef = db.collection('cities').doc('NYC');
batch.set(nycRef, {name: 'New York City'}); // (#0)
const sfRef = db.collection('cities').doc('SF');
batch.update(sfRef, {population: 1000000}); // (#1)
const laRef = db.collection('cities').doc('LA');
batch.delete(laRef); // (#2)
return batch.commit().then(function () {
// ...
});
Run Code Online (Sandbox Code Playgroud)
批量更改没有顺序。它们同时以原子方式发生,或者根本不发生。任何客户端都无法获取不完整批次的数据库视图。
适用于该批次文档的任何安全规则都会同时更改所有文档。安全规则不适用于按顺序排列的单个文档。如果您在安全规则中使用getAfter()来获取批次中更改的文档内容,则每次调用 getAfter() 都只会看到新数据。
永远不会出现批量更新的文档看起来不完整的中间状态。
如果您在可以批量更新的文档上有任何云函数触发器,则没有定义的执行顺序 - 它们可以同时执行,或者以某种明显的“随机”顺序执行。
| 归档时间: |
|
| 查看次数: |
986 次 |
| 最近记录: |