首頁 >web前端 >js教程 >如何在不覆寫的情況下更新 Firestore 中的陣列:「arrayUnion」和「arrayRemove」指南

如何在不覆寫的情況下更新 Firestore 中的陣列:「arrayUnion」和「arrayRemove」指南

Patricia Arquette
Patricia Arquette原創
2024-10-25 08:08:02426瀏覽

How to Update Arrays in Firestore Without Overwriting: A Guide to `arrayUnion` and `arrayRemove`

在 Firestore 中輕鬆更新陣列

使用 Firestore 時,您可能會遇到需要更新文件中的陣列的情況。雖然這似乎是一項簡單的任務,但要完美地實現它,需要了解 Firestore 的特定功能。

傳統上,嘗試使用 .set() 和 merge: true 或 .update() 等技術更新數組通常會導致結果覆蓋數組的內容。不過,Firestore 現在提供了兩個優雅的函數,讓您能夠無縫添加和刪除數組元素:

  • arrayUnion():有選擇地向數組添加元素,確保避免重複。
  • arrayRemove():有效地從陣列中刪除所有出現的指定元素。

例如,假設您有一個具有以下結構的文件:

{
  proprietary: "John Doe",
  sharedWith: [
    {who: "[email protected]", when: timestamp},
    {who: "[email protected]", when: timestamp},
  ],
}

要為共用陣列新增項目,可以使用下列語法:

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

類似地,要從數組中刪除元素,請使用以下方法:

<code class="javascript">firebase.firestore()
  .collection('proprietary')
  .doc(docID)
  .update({
    sharedWith: firebase.firestore.FieldValue.arrayRemove({who: "[email protected]"})
  });</code>

透過利用這些專門的函數,您可以放心地更新Firestore 文件中的數組,而不必擔心不必要的覆蓋。請記得參閱 Firestore 官方文件以取得詳細範例和特定場景的指導。

以上是如何在不覆寫的情況下更新 Firestore 中的陣列:「arrayUnion」和「arrayRemove」指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn