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