簡體   English   中英

將方法中的字段名稱分配給Firestore文檔

[英]Assigning a field name from a method to Firestore document

假設我有一個名為“用戶”的集合。 當有人點擊upvote按鈕時,我希望它用一個條目更新用戶文檔,該條目是他們正在查看的頁面中的slug。 但是,我不知道如何使用我的代碼完成它。

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”而不是slug實際上是什么。

我究竟做錯了什么?

您編寫JSON對象的方式NewSlug本身是屬性名稱,而不是使用其值。 要執行后者,您需要使用方括號表示法( [] ):

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM