将方法中的字段名称分配给Firestore文档

时间:2019-05-25 03:06:17

标签: javascript vuejs2 google-cloud-firestore

假设我有一个名为“用户”的收藏集。当某人单击“ 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”,而不是实际的段符。

我在做什么错了?

1 个答案:

答案 0 :(得分:0)

您编写JSON对象NewSlug本身的方式是属性名称,而不是使用其值。为此,您需要使用方括号([]):

let update = {};
update[NewSlug] = 'voteup';
t.update(voteuser_ref, update)