Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mengemas kini Tatasusunan Objek dalam Firestore Tanpa Menulis Ganti Keseluruhan Tatasusunan?

Bagaimana untuk Mengemas kini Tatasusunan Objek dalam Firestore Tanpa Menulis Ganti Keseluruhan Tatasusunan?

DDD
DDDasal
2024-10-30 21:57:30577semak imbas

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

Mengemas kini Tatasusunan Objek dengan Firestore

Dalam Firestore, mengemas kini tatasusunan objek boleh menjadi tugas yang rumit. Di sini, kami menangani isu tersebut dan menyediakan penyelesaian yang menyelesaikan cabaran yang dihadapi dalam penggabungan data.

Masalahnya

Lazimnya, mengubah suai tatasusunan dalam Firestore memerlukan penggantian keseluruhan tatasusunan . Menggunakan kaedah SET menimpa tatasusunan, manakala kaedah UPDATE melakukan tindakan yang sama. Tingkah laku ini menimbulkan pengehadan apabila cuba mengemas kini elemen individu dalam tatasusunan objek.

Penyelesaian

Firestore kini menawarkan dua kaedah untuk mengurus tatasusunan tanpa menulis ganti keseluruhan tatasusunan:

  • arrayUnion(): Menambah elemen pada tatasusunan, memastikan hanya elemen unik disertakan.
  • arrayRemove(): Mengalih keluar semua kejadian elemen yang ditentukan daripada tatasusunan.

Untuk mengemas kini tatasusunan objek menggunakan kaedah ini, ikut langkah berikut:

  1. Rujuk dokumen yang mengandungi tatasusunan untuk dikemas kini.
  2. Gunakan kaedah kemas kini() dengan sama ada arrayUnion() atau arrayRemove().
  3. Lepaskan objek kepada kaedah arrayUnion() dengan elemen yang dikemas kini sebagai sifat.
  4. Hantar tatasusunan kepada kaedah arrayRemove() dengan elemen yang akan dialih keluar.

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

Dengan menggunakan arrayUnion() dan arrayRemove( ), anda boleh mengemas kini tatasusunan objek dengan lancar dalam Firestore, memastikan perubahan digabungkan ke dalam tatasusunan sedia ada tanpa menimpanya.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Tatasusunan Objek dalam Firestore Tanpa Menulis Ganti Keseluruhan Tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn