2

我想删除(或更改)一个 Firestore 文档的对象列表中的一个特定对象。

有没有办法直接 tx.update(ref,objectlist.element) ?

现在,我得到文档快照,读取对象列表,修改它,然后 tx.update 整个对象列表。

Firestore.instance.runTransaction((Transaction tx) async {
  DocumentSnapshot postSnapshot = await tx.get(postRef);
  if (postSnapshot.exists) {
    Map<String, dynamic> myMap = Map.from(postSnapshot.data["objList"]);
    myMap.remove(something);

    await tx.update(postRef, <String, dynamic>{"objList": myMap}).then((x) {
      print("leaving document editor");
      _goBackToMain();
    });
  }
});

虽然这可行,但如果两个用户尝试同时更新同一个对象列表,我担心会发生冲突。

4

0 回答 0