【问题标题】:Error performing transaction, Every document read in a transaction must also be written., null执行事务时出错,事务中读取的每个文档也必须写入。,null
【发布时间】:2020-09-27 11:40:25
【问题描述】:

我在使用 Flutter 查询 Firestore 数据库时收到此错误。

E/flutter (17558): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] 未处理异常:PlatformException(执行事务时出错,事务中读取的每个文档也必须写入。,null)

Future getFavorites(String uid) {
  DocumentReference favoritesReference =
      Firestore.instance.collection('users').document(uid);
  List favoritesList = [];

  return Firestore.instance.runTransaction((Transaction tx) async {
    DocumentSnapshot postSnapshot = await tx.get(favoritesReference);
    var length;
    if (postSnapshot.exists) {
      length = postSnapshot.data['favorites'].length;
    }

    print(length);
  });
}

【问题讨论】:

  • 听起来您应该将客户端库更新到最新版本。
  • 一切都是最新的。 Android Studio、Flutter 插件、依赖项 - 所有最新版本。

标签: firebase flutter google-cloud-firestore


【解决方案1】:

您似乎没有在编写文档。事务中读取的每个文档都应该被写入。然后,您可以添加对应于每个文档读取的set()update()delete()

如果你不需要写回favoritesReference,那么在事务之前而不是事务内部读取它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    相关资源
    最近更新 更多