-
Notifications
You must be signed in to change notification settings - Fork 29.8k
Closed
Labels
c: crashStack traces logged to the consoleStack traces logged to the consolep: cloud_firestoreFirebase Firestore pluginFirebase Firestore pluginp: firebaseFirebase pluginsFirebase pluginspackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.
Description
Hello,
I have been doing this tutorial step by step:
flutter-firebase
and everything works execelent, but when I tap on any row the java.lang.Exception is thrown.
Code
onTap: () => Firestore.instance.runTransaction((transaction) async {
DocumentSnapshot postSnapshot =
await transaction.get(document.reference);
if (postSnapshot.exists) {
await transaction.update(document.reference,
<String, dynamic>{'votes': postSnapshot.data['votes'] + 1});
}
}),Logs
E/flutter ( 4032): [ERROR:topaz/lib/tonic/logging/dart_error.cc(16)] Unhandled exception:
E/flutter ( 4032): PlatformException(Error performing transaction, java.lang.Exception: Do transaction failed., null)
E/flutter ( 4032): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:547:7)
E/flutter ( 4032): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:279:18)
E/flutter ( 4032): <asynchronous suspension>
E/flutter ( 4032): #2 Firestore.runTransaction (file:///c:/Program%20Files/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.7.2/lib/src/firestore.dart:115:10)
E/flutter ( 4032): <asynchronous suspension>
E/flutter ( 4032): #3 MyHomePage._buildListItem.<anonymous closure> (file:///X:/Projects/baby_names/lib/main.dart:62:39)
E/flutter ( 4032): #4 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:494:14)
E/flutter ( 4032): #5 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:549:30)
E/flutter ( 4032): #6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
E/flutter ( 4032): #7 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:161:9)
E/flutter ( 4032): #8 TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:123:7)
E/flutter ( 4032): #9 GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
E/flutter ( 4032): #10 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:147:20)
E/flutter ( 4032): #11 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:121:22)
E/flutter ( 4032): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:101:7)
E/flutter ( 4032): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:64:7)
E/flutter ( 4032): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:48:7)
E/flutter ( 4032): #15 _invoke1 (dart:ui/hooks.dart:134:13)
E/flutter ( 4032): #16 _dispatchPointerDataPacket (dart:ui/hooks.dart:91:5)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): Failed to handle method call result
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): java.lang.IllegalStateException: Task is already complete
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at com.google.android.gms.common.internal.Preconditions.checkState(Unknown Source:8)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at com.google.android.gms.tasks.zzu.zzdr(Unknown Source:8)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at com.google.android.gms.tasks.zzu.setException(Unknown Source:9)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at com.google.android.gms.tasks.TaskCompletionSource.setException(Unknown Source:2)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at io.flutter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$3$1.error(CloudFirestorePlugin.java:290)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at io.flutter.plugin.common.MethodChannel$IncomingResultHandler.reply(MethodChannel.java:171)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at io.flutter.view.FlutterNativeView.handlePlatformMessageResponse(FlutterNativeView.java:171)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at android.os.MessageQueue.nativePollOnce(Native Method)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at android.os.MessageQueue.next(MessageQueue.java:325)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at android.os.Looper.loop(Looper.java:142)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at android.app.ActivityThread.main(ActivityThread.java:6938)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at java.lang.reflect.Method.invoke(Native Method)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
E/MethodChannel#plugins.flutter.io/cloud_firestore( 4032): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Note:
When I try this solution, it works:
onTap: () { // DO NOT USE THIS VERSION!
document.reference.updateData({'votes': document['votes'] + 1});
},Flutter Doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel beta, v0.3.2, on Microsoft Windows [Version 6.3.9600], locale pl-PL)
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[√] Android Studio (version 3.1)
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code, 64-bit edition (version 1.23.1)
[√] Connected devices (1 available)
weverb2, coleweinman, nicholaslie90, gmkado, hereisderek and 19 more
Metadata
Metadata
Assignees
Labels
c: crashStack traces logged to the consoleStack traces logged to the consolep: cloud_firestoreFirebase Firestore pluginFirebase Firestore pluginp: firebaseFirebase pluginsFirebase pluginspackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.