>웹 프론트엔드 >JS 튜토리얼 >Firestore 배열 필드의 단일 항목을 어떻게 업데이트할 수 있나요?

Firestore 배열 필드의 단일 항목을 어떻게 업데이트할 수 있나요?

Susan Sarandon
Susan Sarandon원래의
2024-11-19 07:46:02904검색

How Can I Update a Single Item in an Array Field in Firestore?

Firestore 배열 필드의 단일 항목 업데이트

Firestore 문서에 items라는 배열 필드가 있는데 다음을 수행하려고 합니다. 배열의 객체 중 하나 내의 필드를 업데이트합니다.

초기 시도

초기 시도에서는 다음 코드를 사용했습니다.

const key = `items.${this.state.index}.meta.description`
const property = `hello bar`;

this.design.update({
  [key]: property
})
...

그러나 , 이는 설명 필드만 남기고 지정된 배열 인덱스에서 전체 개체를 제거했습니다.

수정된 시도

수정된 시도에서 다음 코드가 사용되었습니다.

const key = `items.${this.state.index}.meta`
const property = e.target.value;
let meta = this.state.meta;
meta[e.target.id] = property;

this.design.update({
  [key]: meta
})
...

항목 배열을 객체로 변환하여 배열 구조를 잃은 것으로 보입니다.

Firestore의 제한 사항

Firestore는 배열 필드 업데이트에 제한이 있습니다. 요소 추가 또는 제거만 가능하며 기존 요소 수정은 불가능합니다.

해결책

배열 필드의 항목을 수정하려면 전체 배열을 읽고, 메모리에 필요한 변경 사항을 적용한 다음 수정된 배열 필드 전체를 업데이트합니다.

const items = this.design.get("items"); // Read the array field
items[this.state.index].meta.description = "hello bar"; // Modify the item
this.design.update({
  items: items // Update the entire modified array
})
...

이 접근 방식을 사용하면 배열 구조를 잃지 않고 배열 필드 내의 특정 항목을 업데이트할 수 있습니다.

위 내용은 Firestore 배열 필드의 단일 항목을 어떻게 업데이트할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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