Heim > Artikel > Web-Frontend > Wie kann ich ein einzelnes Element in einem Array-Feld in Firestore aktualisieren?
Aktualisieren eines einzelnen Elements in einem Array-Feld in Firestore
Sie haben ein Array-Feld namens „Elemente“ in einem Firestore-Dokument und möchten dies tun Aktualisieren Sie ein Feld innerhalb eines der Objekte im Array.
Erster Versuch
Ihr erster Versuch verwendete den folgenden Code:
const key = `items.${this.state.index}.meta.description` const property = `hello bar`; this.design.update({ [key]: property }) ...
Allerdings Dadurch wurde das gesamte Objekt am angegebenen Array-Index entfernt, sodass nur das Beschreibungsfeld übrig blieb.
Geänderter Versuch
Ihr geänderter Versuch verwendete den folgenden 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 }) ...
Dadurch wurde das Array „Elemente“ scheinbar in ein Objekt umgewandelt und die Array-Struktur verloren.
Einschränkungen von Firestore
Firestore hat Einschränkungen beim Aktualisieren von Array-Feldern. Es ermöglicht nur das Hinzufügen oder Entfernen von Elementen, nicht das Ändern vorhandener Elemente.
Lösung
Um ein Element in einem Array-Feld zu ändern, müssen Sie das gesamte Array lesen, make Nehmen Sie die erforderlichen Änderungen im Speicher vor und aktualisieren Sie dann das gesamte geänderte Array-Feld.
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 }) ...
Mit diesem Ansatz können Sie das spezifische Element innerhalb des Array-Felds aktualisieren, ohne die Array-Struktur zu verlieren.
Das obige ist der detaillierte Inhalt vonWie kann ich ein einzelnes Element in einem Array-Feld in Firestore aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!