ホームページ >ウェブフロントエンド >jsチュートリアル >配列全体を上書きせずに Firestore のオブジェクトの配列を更新するにはどうすればよいですか?

配列全体を上書きせずに Firestore のオブジェクトの配列を更新するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-30 21:57:30585ブラウズ

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

Firestore を使用したオブジェクトの配列の更新

Firestore では、オブジェクトの配列の更新は複雑なタスクになる場合があります。ここでは、この問題に取り組み、データの結合で直面する課題を解決するソリューションを提供します。

問題

通常、Firestore で配列を変更するには、配列全体を置き換える必要があります。 。 SET メソッドを使用すると配列が上書きされますが、UPDATE メソッドは同じアクションを実行します。この動作により、オブジェクトの配列内の個々の要素を更新しようとするときに制限が生じます。

解決策

Firestore では、配列全体を上書きせずに配列を管理する 2 つの方法が提供されるようになりました。

  • arrayUnion(): 要素を配列に追加し、一意の要素のみが含まれるようにします。
  • arrayRemove(): 削除配列から指定された要素のすべてのインスタンス。

これらのメソッドを使用してオブジェクトの配列を更新するには、次の手順に従います。

  1. 更新する配列を含むドキュメントを参照します。
  2. arrayUnion() または arrayRemove() のいずれかで update() メソッドを使用します。
  3. 更新された要素をプロパティとしてオブジェクトを arrayUnion() メソッドに渡します。
  4. 削除する要素を含む配列を arrayRemove() メソッドに渡します。

コード例

<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>

arrayUnion() と arrayRemove() を利用する) を使用すると、Firestore のオブジェクトの配列をシームレスに更新でき、変更を上書きせずに既存の配列に確実にマージできます。

以上が配列全体を上書きせずに Firestore のオブジェクトの配列を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。