我使用的是云公司的FireStore和具有文档的集合。对于集合中的每个文件,我想更新的领域之一。
因为我并不需要读取任何数据,同时更新它使用事务进行更新是低效的。
批量更新似乎是正确的方向,但是文档不包括一次更新多个文档的例子。在这里看到:成批写入
如果你已经使用火力地堡数据库,写一个完全不同的位置原子是不可能的,这就是为什么你必须使用成批写操作,这意味着要么所有的操作成功,或应用没有。
关于公司的FireStore,所有的操作都现在原子处理。但是,您可以执行多个写入操作为包含一套任意组合(单批),更新(),或删除()操作。一批写入原子完成,可以写入多个文件。
这对于写,更新和删除操作的批量操作的简单例子。
WriteBatch batch = db.batch();
DocumentReference johnRef = db.collection("users").document("John");
batch.set(johnRef, new User());
DocumentReference maryRef = db.collection("users").document("Mary");
batch.update(maryRef, "Anna", 20); //Update name and age
DocumentReference alexRef = db.collection("users").document("Alex");
batch.delete(alexRef);
batch.commit().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
// ...
}
});
呼吁commit()
在您提交整批的一批标的方式方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句