我有一个名为dailyData
的Firestore集合,其中存在一个预加载的文档,其字段为totalCount
,而totalCount
是一个数字。
我希望下面的代码将totalCount加1,然后获取更新后的totalCount
的值。但是,它的行为不符合预期,例如,totalCount
的值为1
时,在事务处理之后,它将成功更新为2
,但该值已传递到dailyRank
是1
而不是2
。
var docs = await Firestore.instance
.collection('dailyData')
.getDocuments();
var ref = docs.documents.first.reference;
Firestore.instance
.runTransaction((transaction) async {
DocumentSnapshot freshSnap =
await transaction.get(ref);
await transaction.update(
freshSnap.reference, {
"totalCount": freshSnap["totalCount"] + 1
});
}).whenComplete(() async {
dailyRank = await ref.get().then(
(docSnapshot) =>
docSnapshot["totalCount"]);
});