我想删除(或更改)一个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();
});
}
});
虽然可行,但我担心两个用户尝试同时更新同一对象列表时会发生冲突。