【问题标题】:How to store an array of data in an array of objects in firestore using vue.js如何使用 vue.js 将数据数组存储在 Firestore 中的对象数组中
【发布时间】:2020-05-17 20:23:45
【问题描述】:
    saveUsernames(){
      let user = firebase.auth().currentUser
      db.collection('users').where('user_id',"==", user.uid).get().then(snapshot => {
        snapshot.forEach((doc) =>{
          for(i=0; i<=this.usernames.length; i++){
          db.collection('users').doc(doc.id).update({
            name: this.name,
            bio: this.bio,
            usernamelist:[{Id:i, username: this.usernames[i]}]
          })}
        })
      }).then(() =>{
        this.$router.push({ name: "Profile" })
      })

我有一组用户名存储在 usernames[] 中,我想存储到我的用户文档中。该索引对应于 Firestore 文档 'users' 中元素 'usernamelist' 中名为 'username' 的元素中相应 Id 值的每个元素的 Id。我将如何循环遍历数据数组中的每个元素并更新 firestore 中的相应元素?我收到一条错误消息,提示“i”未定义。

【问题讨论】:

  • 嗨,杰弗里,你能不能更清楚一些!

标签: javascript vue.js google-cloud-firestore


【解决方案1】:

欢迎加入堆栈!

我不确定您要做什么,但是可以肯定的是,如果您使用索引遍历数组,您应该使用&lt; 而不是&lt;=,例如:

for(i=0; i<this.usernames.length; i++)

否则,在最后一次迭代中,您超出了索引范围。这是因为索引以0 开头,所以最后一个索引是数组长度 - 1。

第二件事是我不确定这个update 内部循环是否会工作,因为这是异步函数(reference)。我建议创建整个字段,然后在一个 update 语句中更新它。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    相关资源
    最近更新 更多