documentSnapshot不返回最新值

时间:2019-02-09 07:50:27

标签: dart flutter google-cloud-firestore

我有一个名为dailyData的Firestore集合,其中存在一个预加载的文档,其字段为totalCount,而totalCount是一个数字。 我希望下面的代码将totalCount加1,然后获取更新后的totalCount的值。但是,它的行为不符合预期,例如,totalCount的值为1时,在事务处理之后,它将成功更新为2,但该值已传递到dailyRank1而不是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"]);
  });

0 个答案:

没有答案