假设我有一个名为“用户”的收藏集。当某人单击“ upvote”按钮时,我希望它使用条目(即他们正在查看的页面中的条目)更新用户文档。但是,我不确定如何使用已有的代码来完成它。
voteUp() {
const voteup_ref = db.collection("builds").doc(this.$route.params.slug)
const voteuser_ref = db.collection("users").doc(this.alias)
return db.runTransaction(t => {
return t.get(voteup_ref).then(doc => {
const newCount = doc.data().voteup + 1
const NewSlug = voteuser_ref
t.update(voteup_ref, {
voteup: newCount
})
t.update(voteuser_ref, {
NewSlug: 'voteup'
})
});
})
},
因此,如果某人正在浏览带有“ my-awesome-comment”字样的页面,我希望将“ my-awesome-comment”以“ voteup”的值输入到用户文档中。
实际发生的情况是,它将按我的期望将其写入用户文档中,但是它将输入字段名称为“ NewSlug”,其值为“ voteup”,而不是实际的段符。
我在做什么错了?
答案 0 :(得分:0)
您编写JSON对象NewSlug
本身的方式是属性名称,而不是使用其值。为此,您需要使用方括号([]
):
let update = {};
update[NewSlug] = 'voteup';
t.update(voteuser_ref, update)