更新 Firestore 中数组字段中的单个项目
您在 Firestore 文档中有一个名为 items 的数组字段,并且您想要更新数组中某个对象内的字段。
初始尝试
您最初的尝试使用了以下代码:
const key = `items.${this.state.index}.meta.description` const property = `hello bar`; this.design.update({ [key]: property }) ...
但是,这删除了指定数组索引处的整个对象,只留下描述字段。
修改后的尝试
您的修改后的尝试使用了以下内容code:
const key = `items.${this.state.index}.meta` const property = e.target.value; let meta = this.state.meta; meta[e.target.id] = property; this.design.update({ [key]: meta }) ...
这似乎将 items 数组转换为一个对象,丢失了数组结构。
Firestore 的限制
Firestore 有以下限制:更新数组字段。它只允许添加或删除元素,而不允许修改现有元素。
解决方案
要修改数组字段中的项目,需要读取整个数组,内存中进行必要的更改,然后更新整个修改后的数组字段。
const items = this.design.get("items"); // Read the array field items[this.state.index].meta.description = "hello bar"; // Modify the item this.design.update({ items: items // Update the entire modified array }) ...
通过使用这种方法,您可以更新数组中的特定项字段不丢失数组结构。
以上是如何更新 Firestore 中数组字段中的单个项目?的详细内容。更多信息请关注PHP中文网其他相关文章!