【问题标题】:Firestore nodes deleted on transaction交易中删除的 Firestore 节点
【发布时间】:2020-10-24 23:34:36
【问题描述】:

当我使用下面的代码添加到文档时,只要我停留在同一屏幕上,我就可以成功地继续向数组中添加其他对象。

  void createRecord(dataMap) async {
    _user = await FirebaseAuth.instance.currentUser();
    var createTransaction = (Transaction tx) async {
      var ds = await tx.get(db
          .collection('users')
          .document(_user.uid)
          .collection("days")
          .document(DateFormat("yyyy-MM-dd").format(dataMap['day'])));
      await tx.set(ds.reference, dataMap);
    };
    Firestore.instance.runTransaction(createTransaction);
  }

离开屏幕后,在尝试添加新对象时,所有对象都会被删除。

当我从屏幕返回时,如何在不删除旧对象的情况下将新对象添加到集合中?

谢谢。

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    要向数组添加新的唯一项,您可以使用arrayUnion operator

    类似:

    await tx.update(ds.reference, {
                    'breakfast': FieldValue.arrayUnion(dataMap['breakfast'][0])
          });
    

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-29
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      相关资源
      最近更新 更多