【发布时间】:2021-09-28 04:45:24
【问题描述】:
在我的 ionic 5 应用程序中,当我直接在事务中更新 Firestore 文档时,以下对象的行为有所不同。
let upDoc = {
user: firestore.FieldValue.arrayRemove(this.uid),
["userName." + this.uid]: firestore.FieldValue.delete()
}
所以,user 是一个数组,userName 是一个映射。我正在尝试从数组中删除用户 ID 并从地图中删除用户名。
当我像下面这样直接执行时,两者都会被删除。
this.afs.doc('user/1234/').update(upDoc);
但是当我在事务中执行相同操作时,只有 user 数组中的数据被删除,但 userName 地图数据不会被删除。
const doc = this.afs.firestore.doc('user/1234/');
await this.afs.firestore.runTransaction(function (transaction) {
return transaction.get(doc).then(function (document) {
transaction.set(doc, upDoc, {merge: true});
})
});
【问题讨论】:
标签: angular firebase ionic-framework google-cloud-firestore transactions