yamoo9 / likelion-FEQA

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

[LAB-11] 쿼리를 두번 돌릴때 파이어베이스 'za2', Wa2 에러 #241

Closed kyuran6 closed 1 year ago

kyuran6 commented 1 year ago

질문 작성자

김진희

문제 상황

스크린샷 2023-03-26 시간: 23 00 06 스크린샷 2023-03-26 시간: 23 00 38

프로젝트 저장소 URL

환경 정보

yamoo9 commented 1 year ago

문제 해결

const getCategories = async () => {
  // ...
  const moreImgListPromises = categoryList.map((item) => {
    const q2 = query(
      collection(db, 'images'),
      where('category_uid', '==', item)
    );

    // getDocs 함수를 사용해 2번째 쿼리 요청
    return getDocs(q2).then(({ docs }) => {
      return docs.map((doc) => doc.data().url);
    });
  });

  // Promise.all을 사용해 모든 비동기 요청이 완료되면 처리
  Promise.all(moreImgListPromises).then((datas) => {
    const urls = datas.reduce((urls, data) => [...urls, data[0]], []);
    setMoreImgArr(urls);
  });
};

HomePage 컴포넌트 JSX 영역 코드는 아래와 같이 수정합니다.

<S.SeeMoreSection>
  {visible &&
    moreImgArr &&
    moreImgArr.map((url) => <SeeMoreImg key={url} src={url} />)
  }
</S.SeeMoreSection>

그러면 결과는 다음 영상과 같습니다. 😊

1

가이드 파일

첨부된 가이드 파일을 다운로드 받아 확인해보세요.

src.zip

kyuran6 commented 1 year ago

답변 정말 감사합니다!