Closed choinamechoi closed 1 year ago
writeBatchData 사용법을 다시 한 번 살펴보세요. 아래 컴포넌트에서 사용하는 코드를 남깁니다. (업로드 파일: shopData)
function Demo() {
const { writeBatchData } = useWriteBatchData('categories', 'title');
const handleWriteBatchData = () => {
writeBatchData(shopData);
};
return (
<>
<button type="button" onClick={handleWriteBatchData}>일괄 데이터 쓰기</button>
{/* ... */}
</>
);
}
답변 해주신 내용을 읽어본 후 이 훅에 파라미터를 잘 넘겨줬음에도 불구하고 batch.commit으로 안넘어감 + 에러가 안뜸 이어서 한참 헤매다가
catch(error) 구문 안에 console.log(error)를 작성하여 직접 error를 띄워보았습니다.
그러자 나온 원인이 퍼미션 관련한 오류였고 , 알고보니 제 파이어베이스 db의 규칙 셋팅이 쓰기 금지가 되어있는걸 알게되었습니다.
결론은 쓰기 true 로 바꿔 해결하였습니다.
한가지 궁금한게 firebase의 퍼미션 error는 원래 콘솔창에서 error를 안띄워주는건지 궁금하네요.
감사합니다.
답변 해주신 내용을 읽어본 후 이 훅에 파라미터를 잘 넘겨줬음에도 불구하고 batch.commit으로 안넘어감 + 에러가 안뜸 이어서 한참 헤매다가
catch(error) 구문 안에 console.log(error)를 작성하여 직접 error를 띄워보았습니다.
그러자 나온 원인이 퍼미션 관련한 오류였고 , 알고보니 제 파이어베이스 db의 규칙 셋팅이 쓰기 금지가 되어있는걸 알게되었습니다.
결론은 쓰기 true 로 바꿔 해결하였습니다.
한가지 궁금한게 firebase의 퍼미션 error는 원래 콘솔창에서 error를 안띄워주는건지 궁금하네요.
감사합니다.
그렇죠. Firestore 데이터베이스 권한 설정은 수업에서도 다뤘던 것처럼 가장 먼저 설정해주셔야 합니다. 😊
useWriteBatchData 훅은 error
를 추출할 수 있는데 오류가 발생한 경우 조건 처리하여 오류를 잡아낼 수 있을 거에요.
function Demo() {
const { writeBatchData, error } = useWriteBatchData('categories', 'title');
const handleWriteBatchData = () => {
writeBatchData(shopData);
};
if (error) {
console.log(error);
}
return (
<>
<button type="button" onClick={handleWriteBatchData}>일괄 데이터 쓰기</button>
{/* ... */}
</>
);
}
질문 작성자
최영범
문제 상황
현재 shopData 데이터를 firestore에 올리는것을 테스트 해보기 위해 사용을 하고있으나
사진과 같이 사용을 훅을 사용을 하면 , 다음 사진과 같은 오류가 발생하고 있습니다.
리드미에 나온대로 잘 사용을 한것같은데 어디부분이 문제인지 감이 안옵니다.