Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich ein einzelnes Element in einem Array-Feld in Firestore aktualisieren?

Wie kann ich ein einzelnes Element in einem Array-Feld in Firestore aktualisieren?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 07:46:02853Durchsuche

How Can I Update a Single Item in an Array Field in Firestore?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn