哪种设置模式更好用

时间:2019-07-10 11:11:32

标签: firebase flutter dart google-cloud-firestore

我遇到了两种向Cloud Firestore添加数据的模式。

首先是通过使用事务,即:

Firestore.instance.runTransaction((transaction) async{
  await transaction.set(ref.document(), {
    'user_name': _name.text,
    'age': _age.text
  });
});

第二种方法是使用setData()方法:

Firestore.instance.collection('users').document('$id').setData({
  'user_name': _name.text,
  'age': _age.text
});

使用一个或另一个后是否有任何性能/良好实践推理?谢谢!

2 个答案:

答案 0 :(得分:1)

当需要原子先读后写操作时,可以使用事务。如果您不需要在写入之前先读取该位置的数据,那么就根本不需要事务处理。

答案 1 :(得分:1)

如果同一节点由不同用户同时更新,则需要使用runTransaction

https://firebase.google.com/docs/firestore/manage-data/transactions

如果一次仅由一个用户更新节点,则可以使用setData