지난주 금요일에 이어 계속 프로젝트 진행중이다. 프로젝트 기능 구현에 시간을 할애하다보니 새로 개념공부를 하지는 못했다.
fieldset : 서로 관련있는 것들을 묶을 때 쓰는 태그
legend : 관련있는 것들이 어떤 사항들인지 나타내는 태그
firestore에서 데이터를 조건 검색하려면 먼저 firestore에서 복합 색인 설정을 해줘야한다. 안 그럼 설정해주라고 오류난다.
sql 강의에서 배웠던 쿼리문 where, orderby가 여기서 다시 나오는구나..
프로젝트 필수 기능 구현에는 지금 좀 막히는 부분이 있어서 그런가 오늘은 큰 진전은 없었고 단지 팀원 각자가 구현했던 코드들을 통합하는데 의의를 뒀다. 처음부터 모두 샘플코드를 base로 각자의 기능을 구현해나갔으면 좀더 수월했을 거 같은데 생각은 들지만 뭐 어쨌거나 이미 이렇게 진행되게 되었다.
일단 지금 상황은 잠깐 내 턴은 넘어간 것 같아서 오늘 남은 시간은 예전부터 구현해보고 싶었던 검색 기능에 도전하였다. 처음에는 firestore에서 해당 콜렉션의 모든 데이터를 다 가져와서 조건문에 걸린 것을 선택적으로 렌더링하려고 여러가지 시도를 했는데 콘솔값은 내가 원하는 데이터가 잘 넘어왔으나 렌더링 부분에서 해결책을 찾지 못하였다. 물론 모든 데이터를 다 가져오는 것도 비효율적인 것 같이 느껴지긴 한다.
어쨌든 구글링해보고 여러 삽질을 해보다가 안 풀려서 튜터님께 질문드렸고 아예 firestore에서 가져올 때부터 쿼리문으로 선택적으로만 가져오게 해보라고 하셨다.
export const getSearchResult = async (event) => {
event.preventDefault();
const searchContent = document.getElementById("searchInput").value;
console.log(searchContent);
let cmtObjList = [];
const q = query(
collection(dbService, "comments"),
where("text", "array-contains", searchContent), // <= 문제의 부분
orderBy("createdAt", "desc")
);
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
const commentObj = {
id: doc.id,
...doc.data(),
};
cmtObjList.push(commentObj);
});
//...
};
근데 이제는 잘 넘어오던 값도 안 넘어오고 계속 빈 배열만 넘어온다... 뭐가 문제인지 도저히 모르겠다. 오늘은 이만 하고 내일 새롭게 알아봐야겠다.