javascript - 只更新集合字段的一个属性

标签 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 字段。通常是否可以仅更新深层嵌套字段的属性,或者预计使用子集合来代替?

最佳答案

首先,doc(``)没有任何帮助。只需删除它即可。

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

firebaseDb.collection('users').doc('fyuAqykYpMVnB0h9grdznZgEcaU2')
    .update( `balanceRecords.${year}`: {
        // whatever properties you want
    })

关于javascript - 只更新集合字段的一个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57443147/

相关文章:

javascript - 使用 JavaScript 对象构造函数更改文本颜色

javascript - 使用jQuery在下拉列表中设置默认值

JavaScript - 内存友好的脚本

javascript - TypeError : subcollection. 推送不是函数

javascript - 在 puppeteer 中获取带有类名的独占类名列表

android - onSuccessListener中文件上传成功时如何返回 bool 值?

javascript - 无法从 React-Native-Firebase(v6) Firestore : undefined is not a function (near '...this._firestore.native.collectionGet...' ) 获取数据

javascript - 成功将图像上传到 firebase 存储后,Firebase 获取下载 URL

Firebase/Firestore 查找在给定数组中具有字段的文档

google-cloud-firestore - FieldValue.increment 不是函数