交易中删除的 Firestore 节点
Posted
技术标签:
【中文标题】交易中删除的 Firestore 节点【英文标题】:Firestore nodes deleted on transaction 【发布时间】: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);
离开屏幕后,在尝试添加新对象时,所有对象都会被删除。
当我从屏幕返回时,如何在不删除旧对象的情况下将新对象添加到集合中?
谢谢。
【问题讨论】:
【参考方案1】:要向数组添加新的唯一项,您可以使用arrayUnion
operator。
类似:
await tx.update(ds.reference,
'breakfast': FieldValue.arrayUnion(dataMap['breakfast'][0])
);
另见:
how to add or remove item to the the existing array in firestore ? flutter firestore, add new object in array How do update array values in Flutter cloud_firestore?【讨论】:
以上是关于交易中删除的 Firestore 节点的主要内容,如果未能解决你的问题,请参考以下文章