documentSnapshot не возвращает последнее значение - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть коллекция Firestore с именем dailyData, в которой существует предварительно загруженный документ с полем totalCount, а totalCount - это число.Я ожидал, что приведенные ниже коды будут увеличивать totalCount на единицу, а затем извлекать значение обновленного 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"]);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...