【问题标题】:Append to an arary field in Firestore附加到 Firestore 中的数组字段
【发布时间】:2018-06-13 12:08:26
【问题描述】:

我正在使用FirebaseVuejs 创建一个数据库元素,其中包含对象数组。

这就是该字段的外观,我想通过表单将任务作为数组添加到“moreTasks”中。

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

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

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

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

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

【问题讨论】:

    标签: javascript firebase google-cloud-firestore


    【解决方案1】:

    您可以使用FieldValue.arrayUnion() 将项目附加到数组,如documentation 中所述。例如:

    // Atomically add a new region to the "regions" array field.
    washingtonRef.update({
        regions: firebase.firestore.FieldValue.arrayUnion("greater_virginia")
    });
    

    【讨论】:

    • 谢谢,我仍然不知道如何读取特定的集合 ID,但我会看看 API
    • 效果很好。对于删除,您可以使用:firebase.firestore.FieldValue.arrayRemove
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 2020-06-25
      • 2020-09-13
      • 2021-05-26
      • 2021-02-21
      相关资源
      最近更新 更多