首頁 > web前端 > js教程 > 如何更新 Firestore 中的物件陣列而不覆寫整個陣列?

如何更新 Firestore 中的物件陣列而不覆寫整個陣列?

DDD
發布: 2024-10-30 21:57:30
原創
583 人瀏覽過

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

使用 Firestore 更新物件陣列

在 Firestore 中,更新物件陣列可能是一項複雜的任務。在這裡,我們解決了這個問題,並提供了一個解決方案來解決合併資料時面臨的挑戰。

問題

通常,修改 Firestore 中的陣列需要取代整個陣列。使用 SET 方法會覆寫數組,而 UPDATE 方法執行相同的操作。當嘗試更新物件數組中的單一元素時,此行為會造成限制。

解決方案

Firestore 現在提供兩種管理數組的方法,而無需覆蓋整個數組:

  • arrayUnion( ):將元素新增至數組,確保僅包含唯一元素。
  • arrayRemove():刪除陣列中指定元素的所有實例。

要使用這些方法更新物件數組,請依照下列步驟操作:

  1. 引用包含要更新的陣列的文件。
  2. 將 update() 方法與 arrayUnion() 或 arrayRemove() 結合使用。
  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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板