附加到阵列Firebase

时间:2018-01-03 19:17:34

标签: javascript firebase google-cloud-firestore

我使用Firebase和Vuejs创建一个数据库元素,其中包含对象数组。 enter image description here

对象的外观,我希望通过表单将任务添加到“更多任务”中。标签。

我尝试使用它,但它只是在数据库中创建新实体。

      db.collection('Tasks').add({
    tasker: this.tasker.taskerName
  })

我也尝试过检查API但我无法理解refs,因为我使用不同的方法来实现这个目标。

creatTask() {
  db.collection('Tasks').add({
    task_id: this.task_id,
    name: this.name,

...

解决这个问题的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

Firestore文档中的数组没有原子追加操作。您必须从文档中读取moreTasks数组,在代码中向其中添加项目,然后将该数组写回文档。如果可能同时发生多个更新,您可能需要考虑在事务中执行此操作。

答案 1 :(得分:0)

以前接受的答案是正确的,但现在错误。现在,有一个使用 arrayUnion 方法的原子附加操作: https://firebase.google.com/docs/firestore/manage-data/add-data#update_elements_in_an_array

只要您使用的是Firestore,而不是实时的db(我认为标签就是这种情况),这就是真的