如何做一个公司的FireStore批量更新

特雷德森:

我使用的是云公司的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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章