게시글
질문&답변
2023.04.20
firebase filterling 관련 질문
그리고 createAt을 date로 변환해서 client 에 넘겨줬는데, 터미널엔 ISO로 찍히는데 데이터는 timestamp string으로 들어 오는데, 이 부분 혹시.. 왜 그러는지 아실까요...?> ㅜㅜ 구글링해도 잘 안나오네요 ㅜㅜ(사진)(사진)
- 0
- 3
- 470
질문&답변
2023.04.20
firebase filterling 관련 질문
Query: { products: async (parent, { cursor = "", showDeleted = false }, info) => { //Admin에서는 다 보여주고, 일반 페이지에서는 createdAt이 있는 것들만 보여주기. //context 에 담긴 DB 필요할때마다 불러오기. const products = collection(db, "products"); //products collection const queryOptions: any[] = [orderBy("createdAt", "desc")]; //filterOptions if (cursor) queryOptions.push(startAfter(cursor)); /** * cursor 기본값 ="" (초기 진입했을 때) => 조건에 들어오지 않음 * cursor 로 마지막 아이템 ID가 들어왔을 때 => 조건에 들어옴. * @look queryOptions= [orderBy("createdAt", "desc"),startAfter(cursor)] * @see 질문 * @question 들어오는 값은 해당 아이템의 ID 인데, 기준은 createdAt이 되는것 아닌가요? * */ if (!showDeleted) queryOptions.unshift(where("createdAt", "!=", null)); // showDeleted = false 일 떄, 삭제된것 제외하고 보여줌 (이 조건이 젤 처음 적용 됨) const q = query(products, ...queryOptions, limit(PAGE_SIZE)); const snapshot = await getDocs(q); const data: DocumentData[] = []; snapshot.forEach((doc) => { // ID가 없기떄문에 강제로 ID 넣어줌. data.push({ id: doc.id, ...doc.data(), createdAt: doc.data().createdAt ? doc.data().createdAt.toDate() : undefined, }); }); return data; },
- 0
- 3
- 470