Meh*_*han 4 javascript google-cloud-firestore
我有一个 firestore firebase 数据库,其中我有一个集合 users 集合中有一个数组,并且在数组中有一个 map 在 map 中有一个字段 qty .. 我想增加那个 qty 值..
使用增量没有帮助,因为数量在数组索引内
db.collection("users").doc(checkId).update({
myCart: firebase.firestore.FieldValue.arrayUnion({
qty: firebase.firestore.FieldValue.increment(1),
}),
Run Code Online (Sandbox Code Playgroud)
这是错误 Output => Uncaught (in promise) FirebaseError: Function FieldValue.arrayUnion() 调用了无效数据。FieldValue.increment() 只能与 update() 和 set() 一起使用
您需要指定要更新的字段的完整路径。所以我认为在你的情况下,那将是:
db.collection("users").doc(checkId).update({
"myCart.0.qty": firebase.firestore.FieldValue.increment(1)
}),
Run Code Online (Sandbox Code Playgroud)
您要更新的字段嵌入在数组中。在这种情况下,您不能使用FieldValue.increment(),因为不可能将数组元素调用为命名字段值。
您需要做的是读取整个文档,修改内存中的字段以包含您想要的内容,然后将该字段更新回文档中。如果您需要更新为原子性,还可以考虑使用事务来实现此目的。
(如果该字段不是数组的一部分,则可以使用FieldValue.increment()。)
| 归档时间: |
|
| 查看次数: |
2224 次 |
| 最近记录: |