yamoo9 / likelion-FEQA

질문/답변 — 프론트엔드 스쿨, 멋사
29 stars 9 forks source link

[LAB-3] useWriteBatchData 훅 관련 질문입니다. #213

Closed choinamechoi closed 1 year ago

choinamechoi commented 1 year ago

질문 작성자

최영범

문제 상황

image

image

현재 shopData 데이터를 firestore에 올리는것을 테스트 해보기 위해 사용을 하고있으나

사진과 같이 사용을 훅을 사용을 하면 , 다음 사진과 같은 오류가 발생하고 있습니다.

리드미에 나온대로 잘 사용을 한것같은데 어디부분이 문제인지 감이 안옵니다.

yamoo9 commented 1 year ago

useWriteBAtchData 훅 사용법

writeBatchData 사용법을 다시 한 번 살펴보세요. 아래 컴포넌트에서 사용하는 코드를 남깁니다. (업로드 파일: shopData)

function Demo() {

  const { writeBatchData } = useWriteBatchData('categories', 'title');

  const handleWriteBatchData = () => {
    writeBatchData(shopData);
  };

  return (
    <>
      <button type="button" onClick={handleWriteBatchData}>일괄 데이터 쓰기</button>
      {/* ... */}
    </>
  );

}
choinamechoi commented 1 year ago

답변 해주신 내용을 읽어본 후 이 훅에 파라미터를 잘 넘겨줬음에도 불구하고 batch.commit으로 안넘어감 + 에러가 안뜸 이어서 한참 헤매다가

catch(error) 구문 안에 console.log(error)를 작성하여 직접 error를 띄워보았습니다.

그러자 나온 원인이 image 퍼미션 관련한 오류였고 , 알고보니 제 파이어베이스 db의 규칙 셋팅이 쓰기 금지가 되어있는걸 알게되었습니다.

결론은 쓰기 true 로 바꿔 해결하였습니다.

한가지 궁금한게 firebase의 퍼미션 error는 원래 콘솔창에서 error를 안띄워주는건지 궁금하네요.

감사합니다.

yamoo9 commented 1 year ago

답변 해주신 내용을 읽어본 후 이 훅에 파라미터를 잘 넘겨줬음에도 불구하고 batch.commit으로 안넘어감 + 에러가 안뜸 이어서 한참 헤매다가

catch(error) 구문 안에 console.log(error)를 작성하여 직접 error를 띄워보았습니다.

그러자 나온 원인이 image 퍼미션 관련한 오류였고 , 알고보니 제 파이어베이스 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>
      {/* ... */}
    </>
  );

}