error handling

객체를 배열로 담아서 데이터 꺼내오기

오연 : Oana 2022. 9. 9. 22:59

Firebase Real time Database에는 데이터가 객체 형태로 저장된다.

그래서 데이터들을 받아와서 반복문으로 map을 돌릴 수 없는 상황이 발생!

 

객체를 배열로 변경해서 꺼내오는 코드를 작성

  const getAllPosts = async () => {
    const response = await getAllPostsData();
    
    // async 함수 내 빈 배열 생성
    const allPostArray = [];

    // for...in 문을 통해 새로운 객체로 담고,
    for (const key in response) {
      const postObject = {
        id: key,
        ...response[key]
      };
      // 빈 배열에 push
      allPostArray.push(postObject);
    }

    let orderedByRecentPost = allPostArray.sort((a, b) => {
      return new Date(b.createdAt) - new Date(a.createdAt)
    })

    setPostData(orderedByRecentPost)
  };