首页 > 解决方案 > 如何在对象类型文档字段的属性上使用 FieldValue.increment()

问题描述

FirestoreFieldValue.increment(someValue)可以与其他字段正常工作,但不能与地图一起使用。

我正在尝试增加地图中属性的值。我有一个名为 user 的文档。它有一张地图points:{id:123, total:100}。我想更新totalin map的值points

firestore.collection('users').doc('user').update({
    "name": "atul",
    "points": { "total": firestore.FieldValue.increment(50) }
})

它的值不是将total值增加到 150,而是变为 100。

标签: javascriptfirebasegoogle-cloud-firestore

解决方案


您需要调用字段的完整路径以增加,而不是将其埋在对象中。字段的完整路径涉及.用作每个字段名称之间的分隔符:

firestore.doc(...).update({
    "points.total": firestore.FieldValue.increment(50)
})

推荐阅读