【发布时间】:2019-01-20 17:55:14
【问题描述】:
我正在使用 Flutter 编写应用程序,我必须使用 Firestore.instance.runTransaction(Transaction tx) 方法进行交易。
在我的 Transaction 对象(或方法)中,我必须使用文档引用更新一些数据。
_firestore.runTransaction((Transaction x) async {
await x.update(Aref, {'data': itemA - y});
await x.update(Bref, {'data': itemB + y});
})
代码运行时会抛出异常(这里是控制台日志):
E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):方法调用结果处理失败 E/MethodChannel#plugins.flutter.io/cloud_firestore(32612): java.lang.IllegalStateException: 任务已经完成 E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 com.google.android.gms.common.internal.Preconditions.checkState(未知来源:8) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 com.google.android.gms.tasks.zzu.zzdr(未知来源:8) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 com.google.android.gms.tasks.zzu.setResult(未知来源:3) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 com.google.android.gms.tasks.TaskCompletionSource.setResult(未知来源:2) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 io.flutter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$3$1.success(CloudFirestorePlugin.java:283) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 io.flutter.plugin.common.MethodChannel$IncomingResultHandler.reply(MethodChannel.java:169) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 io.flutter.view.FlutterNativeView.handlePlatformMessageResponse(FlutterNativeView.java:187) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 android.os.MessageQueue.nativePollOnce(Native Method) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在 android.os.MessageQueue.next(MessageQueue.java:325) E/MethodChannel#plugins.flutter.io/cloud_firestore(32612):在android.os.Looper.loop(Looper.java:142)
【问题讨论】:
-
有同样的问题。我想我已经在一段时间前的某个时间提出了一个问题并在这里提出了一个问题,但我似乎找不到它。
-
我遇到了类似的问题,虽然我也遇到了你的问题:stackoverflow.com/questions/51051730/…
标签: android firebase dart google-cloud-firestore flutter