Вы когда-нибудь находили проблему с этим? У меня точно такая же проблема.
Мой код транзакции работал в течение нескольких месяцев, и вдруг транзакции просто не выполняются. Нет исключений, нет выхода logcat, нет ничего. Просто никогда не возвращается или не вызывает обратный вызов. Похоже, застрял в ожидании. Никаких других операций в пожарном депо не происходит, поэтому, насколько я могу судить, они не заблокированы.
Опять же, это работало месяцами, потом внезапно прекратилось.
Future<void> transactionUpdate(String path, Map<String, dynamic> json) async {
DocumentReference doc = firestore.document(path);
firestore.runTransaction((Transaction tx) async {
DocumentSnapshot snapshot = await tx.get(doc);
if (snapshot.exists) {
await tx.update(doc, json);
} else {
await tx.set(doc, json);
}
});
}
Я использую cloud_firestore: 0.12.0
[√] Flutter (Channel master, v1.6.6-pre.15, on Microsoft Windows [Version 10.0.17134.765], locale en-US)
• Flutter version 1.6.6-pre.15 at C:\dev\libraries\flutter2\flutter
• Framework revision 8139a368ea (7 hours ago), 2019-05-29 10:08:58 -0700
• Engine revision 8dc3a4cde2
• Dart version 2.3.2 (build 2.3.2-dev.0.0 e3edfd36b2)
[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
• Android SDK at C:\dev\libraries\android-sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-28, build-tools 28.0.3
• ANDROID_HOME = C:\dev\libraries\android-sdk
• Java binary at: C:\dev\tools\android-studio-ide-171.4402976-windows\android-studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)
• All Android licenses accepted.
[√] Android Studio (version 3.4)
• Android Studio at C:\dev\tools\android-studio-ide-171.4402976-windows\android-studio
• Flutter plugin version 35.3.1
• Dart plugin version 183.6270
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)