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