[英]How to run transaction in cloud_firestore_odm?
我想运行事务以使用cloud_firestore_odm
更新 Cloud Firestore 中的数据。
此代码工作正常:
usersRef
.doc('foo_id')
.update(
name: 'John',
);
但是这个没有。 我做错了什么,谁能告诉我如何正确地做?
final transaction = await FirebaseFirestore.instance.runTransaction((_) async => _);
usersRef
.doc('foo_id')
.transactionUpdate(
transaction,
name: 'John',
);
由于 ODM 的工作方式,使用 Firestore ODM 使用事务的语法略有不同。
代替:
await FirebaseFirestore.instance.runTransaction((transaction) async {
transaction.update(usersRef.doc('id'), {'age': 42});
});
你应该做:
await FirebaseFirestore.instance.runTransaction((transaction) async {
usersRef.doc('id').transactionUpdate(transaction, age: 42);
});
基本上,交换transaction
与“参考”。 但作为一个好处,事务对象是完全类型化的。
相同的逻辑适用于任何其他交易方法。
试试这个:
await FirebaseFirestore.instance((transaction) async {
await transaction.update(usersRef.doc('foo_id'),{
'name' : 'John'
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.