Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用.where()更新Firebase阵列。但是,获取错误;。更新isn';t函数_Firebase_Vue.js_Google Cloud Firestore - Fatal编程技术网

使用.where()更新Firebase阵列。但是,获取错误;。更新isn';t函数

使用.where()更新Firebase阵列。但是,获取错误;。更新isn';t函数,firebase,vue.js,google-cloud-firestore,Firebase,Vue.js,Google Cloud Firestore,因此,我正在尝试更新firebase中具有数组的文档 当前,用户文档可能如下所示 用户名:约翰 postedProjects:[“项目一”,“项目二”] 然而,当John将“项目三”提交到另一个集合时,我想获取John的文档,并将“项目三”添加到他的数组中 这是我目前的代码(请注意,我没有使用该文档) UID,因为我已将UID设置为名称,但用户可以更改其用户名 沿管路向下,但其油液保持不变) 这是我从中遵循的代码,稍微调整了一下将.doc(uid)更改为.where,以将现有用户与集合中的用户进

因此,我正在尝试更新firebase中具有数组的文档

当前,用户文档可能如下所示

用户名:约翰 postedProjects:[“项目一”,“项目二”]

然而,当John将“项目三”提交到另一个集合时,我想获取John的文档,并将“项目三”添加到他的数组中

这是我目前的代码(请注意,我没有使用该文档) UID,因为我已将UID设置为名称,但用户可以更改其用户名 沿管路向下,但其油液保持不变)

这是我从中遵循的代码,稍微调整了一下将.doc(uid)更改为.where,以将现有用户与集合中的用户进行匹配

但是,我得到一个错误,声明“newProject.update不是函数”

--添加了。where但仍然出现错误,因为我不确定将“update()”放在哪里


返回一个对象,该对象没有
update()
方法,如链接的API文档所示。由于无法保证会产生多少文档,因此您必须先查询,然后迭代结果以找到与文档匹配的文档,使用其属性为其获取一个,最后使用该文档引用对文档进行更新。

Firestore不支持更新查询,向服务器发送查询和更新语句。相反,您必须执行查询,检索结果,然后分别更新它们。我将代码更新为我认为可以使用的代码,但是我仍然错过了一些东西,或者不理解“update()”需要去哪里。
  var newProject = db.collection('users').where('user_id', '==', this.userInfo.user_id);
  newProject.update({
    postedProjects: firebase.firestore.FieldValue.arrayUnion("test")
  })
        db.collection('users').where('user_id', '==', this.userInfo.user_id)
      .get()
      .then(function(querySnapshot)  {
        querySnapshot.forEach(function(doc) {

        doc.data().update({
          postedProjects: firebase.firestore.FieldValue.arrayUnion("new project")
        })
      })
    })}}