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'
});
});
等待FirebaseFirestore.instance((事务)异步{ 等待 transaction.set(usersRef.doc('foo_id'),{ “姓名”:“约翰” }); });