Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在同一位置运行Firestore事务将导致应用程序崩溃_Flutter_Google Cloud Firestore_Transactions - Fatal编程技术网

Flutter 在同一位置运行Firestore事务将导致应用程序崩溃

Flutter 在同一位置运行Firestore事务将导致应用程序崩溃,flutter,google-cloud-firestore,transactions,Flutter,Google Cloud Firestore,Transactions,我需要同时向firestore数据库中的一个位置运行两个事务,但当我实现它时,会出现错误。 我在颤振应用程序中实现firestore事务,基本上我只需按一个按钮即可调用multilple事务。我应该如何确保此错误不会发生,也不会使我的应用程序崩溃 下面添加的代码清楚地显示了事务的调用,事务被准确地配置,没有任何问题,所有问题都发生了,因为它们将在同一位置被调用,并发生在同一位置 我在下面也分享了错误日志。请指导我该怎么做 FlatButton( child:

我需要同时向firestore数据库中的一个位置运行两个事务,但当我实现它时,会出现错误。 我在颤振应用程序中实现firestore事务,基本上我只需按一个按钮即可调用multilple事务。我应该如何确保此错误不会发生,也不会使我的应用程序崩溃

下面添加的代码清楚地显示了事务的调用,事务被准确地配置,没有任何问题,所有问题都发生了,因为它们将在同一位置被调用,并发生在同一位置

我在下面也分享了错误日志。请指导我该怎么做

FlatButton(
                  child: Text("btn3"),
                  onPressed: () {
                   Transaction1().postTransaction();
                    Transaction2().postTransaction();
                  },
错误日志

2020-05-27 18:43:14.529 1022-1344/dev.jideguru.social\u app\u ui E/AndroidRuntime:致命异常:AsyncTask#4 流程:dev.jideguru.social_app_ui,PID:1022 java.lang.RuntimeException:执行doInBackground()时出错 在android.os.AsyncTask$3.done(AsyncTask.java:353) 位于java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) 位于java.util.concurrent.FutureTask.setException(FutureTask.java:252) 位于java.util.concurrent.FutureTask.run(FutureTask.java:271) 在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 运行(Thread.java:764) 原因:java.lang.AssertionError:INTERNAL ASSERTION失败:事务对象的更新回调被调用后无法使用 调用。 位于com.google.firebase.firestore.util.Assert.fail(com.google.firebase:firebase-firestore@@21.3.0:46) 在com.google.firebase.firestore.util.Assert.hardAssert上(com.google.firebase:firebase-firestore@@21.3.0:31) 在com.google.firebase.firestore.core.Transaction.ensureCommitNotCalled上(com.google.firebase:firebase-firestore@@21.3.0:246) 在com.google.firebase.firestore.core.Transaction.lookup上(com.google.firebase:firebase-firestore@@21.3.0:81) 位于com.google.firebase.firestore.Transaction.getAsync(com.google.firebase:firebase-firestore@@21.3.0:191) 访问com.google.firebase.firestore.Transaction.get(com.google.firebase:firebase-firestore@@21.3.0:228) 在io.flatter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$5.doInBackground(CloudFirestorePlugin.java:613) 在io.flatter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$5.doInBackground(CloudFirestorePlugin.java:608) 位于android.os.AsyncTask$2.call(AsyncTask.java:333) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 在java.lang.Thread.run(Thread.java:764)2020-05-27 18:43:14.529 1022-1346/dev.jideguru.social_app_ui E/AndroidRuntime: 致命异常:AsyncTask#6 流程:dev.jideguru.social_app_ui,PID:1022 java.lang.RuntimeException:执行doInBackground()时出错 在android.os.AsyncTask$3.done(AsyncTask.java:353) 位于java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383) 位于java.util.concurrent.FutureTask.setException(FutureTask.java:252) 位于java.util.concurrent.FutureTask.run(FutureTask.java:271) 在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 运行(Thread.java:764) 原因:java.lang.AssertionError:INTERNAL ASSERTION失败:事务对象的更新回调被调用后无法使用 调用。 位于com.google.firebase.firestore.util.Assert.fail(com.google.firebase:firebase-firestore@@21.3.0:46) 在com.google.firebase.firestore.util.Assert.hardAssert上(com.google.firebase:firebase-firestore@@21.3.0:31) 在com.google.firebase.firestore.core.Transaction.ensureCommitNotCalled上(com.google.firebase:firebase-firestore@@21.3.0:246) 在com.google.firebase.firestore.core.Transaction.lookup上(com.google.firebase:firebase-firestore@@21.3.0:81) 位于com.google.firebase.firestore.Transaction.getAsync(com.google.firebase:firebase-firestore@@21.3.0:191) 访问com.google.firebase.firestore.Transaction.get(com.google.firebase:firebase-firestore@@21.3.0:228) 在io.flatter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$5.doInBackground(CloudFirestorePlugin.java:613) 在io.flatter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$5.doInBackground(CloudFirestorePlugin.java:608) 位于android.os.AsyncTask$2.call(AsyncTask.java:333) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)处 在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245) 位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 运行(Thread.java:764)


尝试在第一个事务开始前使用
async
方法和
wait
关键字等待第二个事务。

请显示一些代码。如果可能,请添加控制台上显示的错误详细信息日志。@Ganapat我已在上面添加了错误日志,请check@Nenroz我在上面的问题中添加了事务调用tran