>  기사  >  웹 프론트엔드  >  전체 배열을 덮어쓰지 않고 Firestore에서 객체 배열을 업데이트하는 방법은 무엇입니까?

전체 배열을 덮어쓰지 않고 Firestore에서 객체 배열을 업데이트하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-30 21:57:30578검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.