Flutter FirebaseDatabase run transaction crash

475

I was getting the same error while using flutter dev channel. Going to stable channel fixed it for me. To check which channel you are do flutter channel

To switch to stable channel do:

flutter channel stable
flutter upgrade
Share:
475
Jorge Vieira
Author by

Jorge Vieira

I made a little apps with android pure and then i meet flutter and liked it so much, i am currently migrating my apps to flutter so then i can publish to ios too.

Updated on December 11, 2022

Comments

  • Jorge Vieira
    Jorge Vieira over 1 year

    i'm trying run a transaction in the firebase database using Flutter and i am getting an error, can someone help me to solve this?

    Code:

    ref.runTransaction((MutableData transaction) async {
          transaction.value = (transaction.value ?? 0) + 1;
          return transaction;
        });
    

    Error:

    E/RepoOperation(16416): Caught Throwable.
    E/RepoOperation(16416): java.lang.RuntimeException: Methods marked with @UiThread must be executed on the main thread. Current thread: FirebaseDatabaseWorker
    E/RepoOperation(16416):     at io.flutter.embedding.engine.FlutterJNI.ensureRunningOnMainThread(FlutterJNI.java:605)
    E/RepoOperation(16416):     at io.flutter.embedding.engine.FlutterJNI.dispatchPlatformMessage(FlutterJNI.java:515)
    E/RepoOperation(16416):     at io.flutter.embedding.engine.dart.DartMessenger.send(DartMessenger.java:76)
    E/RepoOperation(16416):     at io.flutter.embedding.engine.dart.DartExecutor.send(DartExecutor.java:166)
    E/RepoOperation(16416):     at io.flutter.view.FlutterNativeView.send(FlutterNativeView.java:155)
    E/RepoOperation(16416):     at io.flutter.plugin.common.MethodChannel.invokeMethod(MethodChannel.java:98)
    E/RepoOperation(16416):     at io.flutter.plugins.firebase.database.FirebaseDatabasePlugin$1.doTransaction(FirebaseDatabasePlugin.java:345)
    E/RepoOperation(16416):     at com.google.firebase.database.core.Repo.startTransaction(com.google.firebase:firebase-database@@17.0.0:831)
    E/RepoOperation(16416):     at com.google.firebase.database.DatabaseReference$4.run(com.google.firebase:firebase-database@@17.0.0:511)
    E/RepoOperation(16416):     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:458)
    E/RepoOperation(16416):     at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    E/RepoOperation(16416):     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    E/RepoOperation(16416):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    E/RepoOperation(16416):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    E/RepoOperation(16416):     at java.lang.Thread.run(Thread.java:764)
    

    Thanks in advance.

  • Jorge Vieira
    Jorge Vieira almost 5 years
    You right, the version stable is working, it get crashed in some version after the version 1.5.8 i guess. Thank you.
  • Saifallak
    Saifallak almost 5 years
    i added as issue for Flutter , follow it github.com/flutter/flutter/issues/33562
  • Eric Duffett
    Eric Duffett almost 5 years
    Awesome!! Thanks!! Is the flutter upgrade command required? It resulted in some breaking changes in my pubspec.yaml file that I had to go in and fix.