Firebase 在事务中删除Firestore节点

Firebase 在事务中删除Firestore节点,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,当我使用下面的代码添加到文档中时,只要我保持在同一屏幕上,我就能够成功地将其他对象添加到数组中 void createRecord(dataMap) async { _user = await FirebaseAuth.instance.currentUser(); var createTransaction = (Transaction tx) async { var ds = await tx.get(db .collection('use

当我使用下面的代码添加到文档中时,只要我保持在同一屏幕上,我就能够成功地将其他对象添加到数组中

  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);
  }

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

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


谢谢。

要向阵列中添加新的、唯一的项,您可以使用

比如:

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