스파르타코딩클럽 내일배움캠프 TIL17

한재창·2022년 11월 22일
0

파이어베이스 데이터 선택해서 가져오기

  • 파이어베이스에서 어제, 오늘, 내일 쓴 글을 불러올 수 있도록 코드를 짜보았다.
    맨 처음에 타임스탬프 형식으로 저장해서 불러왔는데 잘 안되서 데이트 형식으로 코드를 다시 짰는데도 안됐다.
    오늘 날짜와 내일 날짜가 출력이 안되고 하루 전날씩 출력이 된다.... ㅂㄷㅂㄷ
export const getCommentList = async (time) => {
  let cmtObjList = [];
  // 날짜순으로 가져오기 위해 "yyyy-mm-dd" 형식으로 저장
  const today = new Date().toDateString("yyyy-mm-dd");
  const now = new Date();
  const yesterday = new Date(now.setDate(now.getDate() - 1)).toDateString(
    "yyyy-mm-dd"
  );
  console.log(now);

  const tomorrow = new Date(now.setDate(now.getDate() + 1)).toDateString(
    "yyyy-mm-dd"
  );

  console.log(tomorrow);

  if (time === "yesterday") {
    const q = query(
      collection(dbService, "comments"),
      where("createdAt", "<", new Date(today)),
      where("createdAt", ">=", new Date(yesterday)), //범위 설정~!~!~!
      orderBy("createdAt", "desc")
    );
    const querySnapshot = await getDocs(q);
    querySnapshot.forEach((doc) => {
      const commentObj = {
        id: doc.id,
        ...doc.data(),
      };
      cmtObjList.push(commentObj);
    });
  } else if (time === "today") {
    const q = query(
      collection(dbService, "comments"),
      where("createdAt", "<", new Date(tomorrow)),
      where("createdAt", ">=", new Date(today)),
      orderBy("createdAt", "desc")
    );
    const querySnapshot = await getDocs(q);
    console.log(querySnapshot);
    querySnapshot.forEach((doc) => {
      const commentObj = {
        id: doc.id,
        ...doc.data(),
      };
      cmtObjList.push(commentObj);
    });
  } else if (time === "tomorrow") {
    const q = query(
      collection(dbService, "comments"),
      where("createdAt", ">=", new Date(tomorrow)),
      orderBy("createdAt", "desc")
    );
    const querySnapshot = await getDocs(q);
    querySnapshot.forEach((doc) => {
      const commentObj = {
        id: doc.id,
        ...doc.data(),
      };
      cmtObjList.push(commentObj);
    });
  } else {
  }
profile
취준 개발자

0개의 댓글