繁体   English   中英

如何使用 vue.js 将数据数组存储在 Firestore 中的对象数组中

[英]How to store an array of data in an array of objects in firestore using vue.js

    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' 中的每个元素的 Id,该元素位于相应的 Id 值处名为 'username' 的元素内。 我将如何循环遍历数据数组中的每个元素并更新 firestore 中的相应元素? 我收到一条错误消息,提示“i”未定义。

欢迎加入堆栈!

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

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

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

第二件事是我不确定循环内的这个update是否会起作用,因为这是异步的 function( 参考)。 我建议创建整个字段,而不是在一个update语句中更新它。

我希望它会有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM