【发布时间】:2020-01-18 21:10:25
【问题描述】:
我是 firebase 新手,有点挣扎。
目前,我正在尝试在文档中更新用户中的数组。但是,我无法使用唯一 ID 将用户与当前用户匹配,因为每个用户的唯一 ID 都是他们的用户名,并且自创建以来可能已经更改。
我认为将文档用户与当前用户匹配的最佳方法是使用 .where().get(),然后使用“update()”更新数组。
现在,这就是我卡住的地方。在 firebase 文档中,他们使用 .update 的 example 附加到 .doc
var washingtonRef = db.collection("cities").doc("DC");
//Atomically add a new region to the "regions" array field.
washingtonRef.update({
regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia")
});
但是,由于我使用的是 .where,我假设我必须使用引用和快照。但是,我不太确定引用在这种情况下如何工作,以及如何正确更新。
这是我经过一段时间的混乱后得到的代码,但无论我的变化如何,我都无法弄清楚。 (本质上,我想添加一个新项目(在本例中称为“新项目”到postedProjects 的用户数组中。)
db.collection('users').where('user_id', '==', this.userInfo.user_id)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
doc.data().update({
postedProjects: firebase.firestore.FieldValue.arrayUnion("new project")
})
})
})
这给了我“.update() 不是函数”的错误。
是否有人可以帮助我提供解决方案,向我展示如何在这种情况下正确使用引用?
【问题讨论】:
标签: javascript firebase vue.js google-cloud-firestore