Maison  >  Article  >  interface Web  >  Comment mettre à jour des tableaux d'objets dans Firestore sans écraser l'intégralité du tableau ?

Comment mettre à jour des tableaux d'objets dans Firestore sans écraser l'intégralité du tableau ?

DDD
DDDoriginal
2024-10-30 21:57:30578parcourir

How to Update Arrays of Objects in Firestore Without Overwriting the Entire Array?

Mise à jour de tableaux d'objets avec Firestore

Dans Firestore, la mise à jour de tableaux d'objets peut être une tâche complexe. Ici, nous abordons le problème et proposons une solution qui résout les défis rencontrés lors de la fusion des données.

Le problème

En règle générale, la modification des tableaux dans Firestore nécessite le remplacement de l'ensemble du tableau. . L'utilisation de la méthode SET écrase le tableau, tandis que la méthode UPDATE effectue la même action. Ce comportement pose des limites lors de la tentative de mise à jour d'éléments individuels dans un tableau d'objets.

La solution

Firestore propose désormais deux méthodes pour gérer les tableaux sans écraser l'intégralité du tableau :

  • arrayUnion() : ajoute des éléments à un tableau, garantissant que seuls les éléments uniques sont inclus.
  • arrayRemove() : supprime toutes les instances des éléments spécifiés d'un tableau.

Pour mettre à jour un tableau d'objets à l'aide de ces méthodes, suivez ces étapes :

  1. Référez-vous au document contenant le tableau à mettre à jour.
  2. Utilisez la méthode update() avec arrayUnion() ou arrayRemove().
  3. Passez un objet à la méthode arrayUnion() avec les éléments mis à jour comme propriétés.
  4. Passez un tableau à la méthode arrayRemove() avec les éléments à supprimer.

Exemple de code

<code class="javascript">// Add an element to the "sharedWith" array
firebase.firestore()
  .collection('proprietary')
  .doc(docID)
  .update({
    sharedWith: firebase.firestore.FieldValue.arrayUnion({ who: "[email protected]", when: new Date() })
  });

// Remove an element from the "sharedWith" array
firebase.firestore()
  .collection('proprietary')
  .doc(docID)
  .update({
    sharedWith: firebase.firestore.FieldValue.arrayRemove({ who: "[email protected]", when: timestamp })
  });</code>

En utilisant arrayUnion() et arrayRemove( ), vous pouvez mettre à jour de manière transparente des tableaux d'objets dans Firestore, en garantissant que les modifications sont fusionnées dans le tableau existant sans l'écraser.

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