仅更新集合字段的一个属性

时间:2019-08-10 14:47:47

标签: javascript firebase google-cloud-firestore

当前的应用程序逻辑需要按年存储用户记录,并且看起来像:


balanceRecords: {
  2017: {
  ...,
    12: { ... }
  },
  2018: {
  ...,
    12: { ... }
  },
  2019: {
    ...,
    8: { ... }
  }
}

enter image description here

我试图通过users集合中的ID来更新文档

// year --> returned from the for loop operation from [2017, 2018, 2019]
firebaseDb.collection(`users`).doc(fyuAqykYpMVnB0h9grdznZgEcaU2)
            .update( personalData: {
               [year]: {}
            })
            .then(...)
            .catch(...)

这样做,我得出的结论是,每次我都覆盖文档中的balanceRecords字段时。通常可以只更新深度嵌套字段的属性,还是可以使用sub-collections来代替?

1 个答案:

答案 0 :(得分:1)

首先,npm run build无济于事。只需删除它即可。

您可以使用点表示法来更新深度属性。我更改了一些示例代码,因为它存在语法错误,并且显然正在更新与突出显示的属性不同的属性。

doc(``)