오늘은 프로젝트 3일차인데 어제 다 못 구현한 검색 기능을 마저 구현하고 마이페이지 쪽 구현할 부분도 있어서 새로 배운 것은 없다.
어제 문제의 코드인
where("text", "array-contains", searchContent),
이 쿼리 부분은 결국 제외하고 다른 방법으로 구현해보기로 하였다. db에서 조건에 해당하는 부분만 데이터를 가져오기에 시간, 공간복잡도 측면에서 이렇게 할 수 있으면 하는 게 좋겠지만, 또 다른 튜터님께서 array-contains는 url에 쪽에 적용할 수 있는 함수라 '일치' 조건이 아닌 내가 원하는 '포함' 조건은 firebase으로는 이런 심화적인 기능이 없어서(?) 구현할 수 없다고 하셨다. 물론 현업에서는 백엔드 개발자들이 서버를 다루므로 firebase를 거의 사용하지 않는다고 들었기에 튜터님이 firebase를 거의 모든 부분을 잘 알고 계시지 못할 수 있고 내가 듣고 잘못 기억할 수도 있지만 어쨌거나 다른 방법으로 구현해보기로 하였다.
그래서 위의 방법 대신에 검색어를 포함하는 내용의 댓글만 담긴 배열을 하나 구현해서 렌더링해주는 함수에 인자로 넣고, 검색어가 들어가면 방금 넣은 배열의 요소들을 렌더링해주고, 검색어가 없다면 현재 있는 전체 글을 렌더링해주는 식으로 구현해보라고 하셨다. db에 있는 전체 데이터를 가져와 반복문 안에서 돌게 되는 것이 시간복잡도, 공간복잡도 상으로는 좋지 않지만 firebase을 사용해야하는 한에서는 일단 이런 방향으로 방법을 말씀해주셨다.
여튼 그래서 추천받은 방향으로 우여곡절 끝에 검색기능은 구현 완료했고 이제 나중에 여유가 되면 본 프로젝트 파일에 적용하는 것만 남았다.
그다음은 사진 업로드 기능... 아직 나한텐 코드가 상당히 복잡했다. 그래도 샘플 코드에 구현이 이미 되어있다고 그냥 넘어갔으면 이부분에 대해서 잘 몰랐을텐데 이부분도 시행착오를 겪으면서 조금씩 코드가 눈에 들어오는 것 같다. 아직 이해하지 못하는 부분도 많지만... 이부분을 구현하는 과정에서도 막혔었는데 결국 원인은 firebase config값을 내 고유 값으로 바꿔주지 않아서였다.
다음엔 오류나면 firebase.js의 config도 확인해보자.