我遇到了两种向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
});
使用一个或另一个后是否有任何性能/良好实践推理?谢谢!
答案 0 :(得分:1)
当需要原子先读后写操作时,可以使用事务。如果您不需要在写入之前先读取该位置的数据,那么就根本不需要事务处理。
答案 1 :(得分:1)
如果同一节点由不同用户同时更新,则需要使用runTransaction
。
https://firebase.google.com/docs/firestore/manage-data/transactions
如果一次仅由一个用户更新节点,则可以使用setData