Maison >interface Web >js tutoriel >Comment mettre à jour un élément spécifique dans un champ de tableau dans Firestore ?

Comment mettre à jour un élément spécifique dans un champ de tableau dans Firestore ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-16 15:53:03550parcourir

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

Mise à jour d'un élément dans un champ de tableau dans Firestore

Lorsque vous travaillez avec des champs de tableau dans Firestore, vous pouvez rencontrer des situations où vous devez mettre à jour éléments individuels dans le tableau.

Approche initiale

Votre tentative initiale de mettre à jour un champ dans un tableau d'éléments à l'aide d'un chemin imbriqué n'a pas fonctionné car Firestore ne prend pas en charge les mises à jour directes aux éléments du tableau. Au lieu de cela, il permet uniquement les mises à jour de l'ensemble du tableau.

Approche alternative

Pour mettre à jour un champ dans un tableau d'éléments, vous pouvez suivre les étapes suivantes :

  1. Lire l'intégralité du tableau du document en mémoire.
  2. Modifier le tableau en mémoire en mettant à jour le champ souhaité.
  3. Mettre à jour l'intégralité du champ du tableau avec le tableau modifié.

Cette approche vous permet d'apporter des modifications à des éléments individuels tout en conservant l'intégrité du tableau.

Exemple :

Dans votre scénario spécifique, pour mettre à jour items[0].meta.description de "hello world" vers "hello bar", vous devez :

// 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
});

Cette solution vous permet de mettre à jour le champ souhaité tout en gardant la structure du tableau intacte.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn