Heim  >  Artikel  >  Web-Frontend  >  Wie aktualisiere ich ein bestimmtes Element in einem Array-Feld in Firestore?

Wie aktualisiere ich ein bestimmtes Element in einem Array-Feld in Firestore?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-16 15:53:03486Durchsuche

How to Update a Specific Item in an Array Field in Firestore?

Aktualisieren eines Elements in einem Array-Feld in Firestore

Beim Arbeiten mit Array-Feldern in Firestore kann es vorkommen, dass Sie eine Aktualisierung durchführen müssen einzelne Elemente innerhalb des Arrays.

Erster Ansatz

Ihr erster Versuch, ein Feld innerhalb eines Elementarrays mithilfe verschachtelter Pfade zu aktualisieren, hat nicht funktioniert, da Firestore keine direkten Aktualisierungen unterstützt um Elemente anzuordnen. Stattdessen sind nur Aktualisierungen des gesamten Arrays möglich.

Alternativer Ansatz

Um ein Feld innerhalb eines Elementarrays zu aktualisieren, können Sie die folgenden Schritte ausführen:

  1. Lesen Sie das gesamte Array aus dem Dokument in den Speicher.
  2. Ändern Sie das Array im Speicher, indem Sie das gewünschte Feld aktualisieren.
  3. Aktualisieren Sie das gesamte Array-Feld mit dem geänderten Array.

Mit diesem Ansatz können Sie Änderungen an einzelnen Elementen vornehmen und gleichzeitig die Integrität des Arrays wahren.

Beispiel:

In Ihrem spezifischen Szenario: Um items[0].meta.description von „hello world“ auf „hello bar“ zu aktualisieren, würden Sie:

// Read the entire items array
const items = await design.get().data().items;

// Modify the array in memory
items[0].meta.description = "hello bar";

// Update the entire items array
await design.update({
  items: items
});

Mit dieser Lösung können Sie das gewünschte Feld aktualisieren und dabei die Array-Struktur intakt halten.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich ein bestimmtes Element in einem Array-Feld in Firestore?. 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