首页 > web前端 > js教程 > 如何更新 Firestore 数组中的嵌套字段?

如何更新 Firestore 数组中的嵌套字段?

DDD
发布: 2024-11-14 19:37:02
原创
233 人浏览过

How Can I Update a Nested Field in an Array in Firestore?

Firestore:更新嵌套数组字段

问题陈述:

您在 Firestore 中有一个文档,其中的数组字段包含对象。您需要更新数组内对象内的特定字段。但是,尝试直接使用点符号 (items.${index}.meta.description) 进行更新无法正常工作。

解决方案:

Firestore 目前不支持直接更新索引数组中的特定元素。相反,请考虑以下替代方案:

选项 1:重写整个数组

不要更新特定字段,而是从文档中读取整个数组,制作所需的内容修改内存,然后整体更新修改后的数组字段:

const key = `items.${this.state.index}.meta`;
let items = this.state.items;
items[this.state.index].meta.description = 'hello bar';

this.design.update({
  [key]: items,
})
登录后复制

这种方法有效地重写了整个数组,如果数组很大,效率可能会很低。

选项 2:使用数组操作

虽然 Firestore 不允许直接更新现有数组元素,但您仍然可以使用数组操作添加或删除元素。例如,要将新元素追加到数组中:

this.design.update({
  items: FieldValue.arrayUnion({
    name: 'New Item',
    meta: {
      image: 'def.png',
      description: 'hello new item',
    }
  })
})
登录后复制

要删除元素,请使用 FieldValue.arrayRemove()。

建议:

如果数组相对较小,选项 1(重写整个数组) 可能是一个简单的解决方案。但是,如果数组很大,选项 2(使用数组操作) 效率更高,因为它可以避免覆盖整个数组。

以上是如何更新 Firestore 数组中的嵌套字段?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板