更新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中文網其他相關文章!