Firestore runTransaction никогда не запускается - PullRequest
2 голосов
/ 24 мая 2019

У меня самая странная проблема.Однажды, совершенно неожиданно, runTransaction просто перестала работать полностью.ошибок нет.нет сообщений.любые операторы печати, которые я там помещаю, никогда не запускаютсяничего такого.как если бы оператора runTransaction там вообще не было.

Мой код точно такой же, как пример кода в пабе.если я просто запускаю update или set или add без транзакции, она работает отлично.

final DocumentReference postRef = Firestore.instance.document('all_tokens/123');
Firestore.instance.runTransaction((Transaction tx) async {
                  DocumentSnapshot postSnapshot = await tx.get(postRef);
                  if (postSnapshot.exists) {
                    await tx.update(postRef, <String, dynamic>{'likesCount': postSnapshot.data['likesCount'] + 1});
                  }else{
                    await tx.set(postRef, <String, dynamic>{'likesCount': postSnapshot.data['likesCount'] + 1});
                  }
                });

Нет сообщений об ошибках вообще.ничего в catch, ничего в then.Все это никогда не работает.это как пропущенный

вот мой pubspeck.yaml:

dependencies:
  flutter:
    sdk: flutter
  http: ^0.12.0
  font_awesome_flutter: ^8.2.0
  fluttertoast: ^3.0.4
  datetime_picker_formfield: ^0.1.7
  flutter_image_compress: ^0.4.0
  cloud_firestore: ^0.11.0+2
  firebase_auth: ^0.11.1
  google_sign_in: ^4.0.1+3
  firebase_messaging: ^4.0.0+3
  shared_preferences: ^0.5.2
  firebase_storage: ^3.0.0
  flutter_rating: ^0.0.2
  flutter_typeahead: ^1.4.0
  url_launcher: ^4.0.3
  flutter_facebook_login: ^2.0.0
  algolia: ^0.1.5
  geolocator: ^4.0.3
  provider: ^2.0.1

Ответы [ 2 ]

1 голос
/ 31 мая 2019

Я пришел к выводу, что эта проблема возникла в последней версии Flutter. Недавно я обновился до последней версии в мастер-канале, и у меня начались те же проблемы. После перехода на последнюю версию стабильного канала проблема исчезла.

Спасибо crushman1 за сообщение об этом и обновлению, что у него работало понижение рейтинга. Понижение до последней стабильной сборки также исправило это для меня.

Шаги для понижения можно найти ЗДЕСЬ

1 голос
/ 30 мая 2019

Вы когда-нибудь находили проблему с этим? У меня точно такая же проблема.

Мой код транзакции работал в течение нескольких месяцев, и вдруг транзакции просто не выполняются. Нет исключений, нет выхода 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...