Исключение транзакции Firebase Set - PullRequest
2 голосов
/ 28 мая 2020

Я получаю это исключение при создании документа в транзакции Firestore с использованием пакета Flutter cloud_firestore:

PlatformException(Error performing transaction, Every document read in a transaction must also be written., null)

Это код:

DocumentSnapshot postSnapshot = await tx.get(post.reference);

await tx.set(Firestore.instance.collection('users').document(userId).collection('stars').
                 document(),docNew);
await tx.update(postSnapshot.reference, stockUpdate);

Ниже приведены сведения об исключении:

E/flutter ( 7157): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(Error performing transaction, Every document read in a transaction must also be written., null)
E/flutter ( 7157): #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:569:7)
E/flutter ( 7157): #1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:321:33)
E/flutter ( 7157): <asynchronous suspension>
E/flutter ( 7157): #2      MethodChannel.invokeMapMethod (package:flutter/src/services/platform_channel.dart:349:48)
E/flutter ( 7157): #3      MethodChannelFirestore.runTransaction (package:cloud_firestore_platform_interface/src/method_channel/method_channel_firestore.dart:123:10)
E/flutter ( 7157): #4      Firestore.runTransaction (package:cloud_firestore/src/firestore.dart:85:22)

Как вы видите в коде, я пытаюсь создать do c в одной коллекции и обновить поле в другом документе.

Есть подсказки для отладки этого? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...