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