Flutter: сбои транзакции Firestore Android эмуляция - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь запустить транзакцию с помощью firestore, которая увеличивает счетчик голосов. Я запускаю следующий код:

Firestore.instance.runTransaction((Transaction tx) async {
          DocumentSnapshot postSnapshot = await tx.get(postRef);
          if (postSnapshot.exists) {
            //print(postSnapshot.data['Votes']);
            await tx.update(postRef, <String, dynamic>{'Votes': postSnapshot.data['Votes'] + 1})
          .catchError((e) {print(e);});
          }
        }).catchError((e) {
          print(e);
        });

Иногда это работает нормально, но иногда это заставляет мой android эмулятор молча взломать sh - приложение закрывается и консоль говорит Lost connection to device. Ни один из операторов catchError не печатает, и нет вывода из консоли. Врач трепетает никаких проблем. Похоже, что это не проблема для iOS, хотя трудно сказать, так как ошибка sporadi c. Моя версия флаттера Флаттер (стабильный канал, v1.12.13 + hotfix.5, на Ma c OS X 10.15.2 19C57, локаль en-US)

Кто-нибудь знает почему это может происходить? Это проблема с флаттером или с тем, как я выполняю транзакцию? Любая помощь будет принята с благодарностью, спасибо!

1 Ответ

0 голосов
/ 27 февраля 2020

Это может быть сложно. Вы не упомянули версию Android Studio и какое устройство android и версию os вы использовали. Я предлагаю попробовать установить другое виртуальное устройство и проверить. Здесь у вас есть хороший учебник для Ма c.

Если это не сработает, есть страница для эмулятора устранения неполадок , если вы не нашли там свою проблему, вы может сообщить об ошибке.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...