2023. 12. 22. 20:57ㆍ공부/내배캠 TIL
목차
1. 문제
firebase에서 버튼을 하나 누르면 그 번호를 id로 가지는 document를 받아오고 싶었다.
그러나, 버튼을 누르면 모든 데이터가 한번에 표시되었다.
2. 시도
튜터님께 질문해 보았다.
-> getDocs를 모든 document를 받아 순회했기 떄문에 발생한 문제로 보셨다.
공식 문서를 참고하여 getDoc() 함수를 사용해야 함을 알게 되었고,
자세한 사용법은 gpt에 질문해 보았다.
Certainly! If you want to fetch a document from Firestore based on its document ID, you can use the doc function to create a reference to that specific document. Here's how you can modify the code to achieve this:
In this modification, the fetchDataById function now takes a documentId
(굉장히 불편하게 긁혀왔다.)
db에서 doc을 가져와서, 나타내는 부분을 함수로 만들고, 해당 함수를 for문 안에 넣어 버튼을 눌렀을 때 동작하게 하였습니다. 만, 해당 코드를 적용하였을 때 버튼을 눌러도 작동하지 않아 무엇이 문제인지는 모른체로 해당 방법을 폐기하였습니다.(이때 튜터님께 질문했으면 좋았겠다 생각된다.)
이후, 어짜피 인원이 4명으로 고정되어 있고, for를 1~4이하일 때 돌리는 방법으로 4가지 경우만 만들면 되니 for문에 달린 이런 저런 조건들을 싹 무시해버리고, function 자체를 for문 안으로 돌려 db에서 id가 String(i)인 document를 찾아 data를 뽑아 표현해내는 코드를 작성하게 되었습니다.(결과에서 계속)
3. 결과
해당 코드를 구동한 결과, 버튼 하나에 하나의 document가 출력되는 것을 확인할 수 있었고,
조장님이 적용한 css까지 추가한 결과 다음과 같은 형태로 구현되었습니다.
4. 배운점
공식문서를 보고, 구글에 영어로 검색(튜터님이 알려준 구글링 꿀팁)하면서 몇가지 예시를 보며 gpt를 사용해 코드를 짰습니다.
먼저, db를 다룰때 initialization과 프런트와 백 사이의 단어 일치, 명명 규칙의 중요함을 느낄 수 있는 순간이 있었습니다.
id와 class명을 설정할 때 _가 아닌 -로 구분된 명칭들을 복사하거나 검색할 때 하나의 단어로 포함되는지, 안되는지에 따라 오류가 나기도 했으며 백에서 설정한 이름이 의미를 제대로 전달하지 못해 추가로 설명을 해야 하기도 했습니다.
또한 git을 사용한 협업 도중 문제가 발생해 한번 진행을 되돌리고 해결도 해보았습니다. git을 사용한 시행착오를 겪으며 좀 더 git의 사용에 익숙해졌다 느낄 수 있었습니다.
끝으로, 기능적인 구현은 얼추 마무리 되었지만 사진과 글의 위치, 크기를 조절할 필요가 있어 보이고,
빈 공간을 채우기 위해, db내부의 데이터를 클라이언트에서 수정하는 것을 구현해볼 계획입니다.
+++ 사족 +++
시간은 느리게 가는데 하루는 정말 짧다.
git은 여전히 익숙하지 못하다. 계속해서 배워나가는 과정...
'공부 > 내배캠 TIL' 카테고리의 다른 글
[Node.js_4기] Today_I_Learn : javascript 학습 (23/12/29) (0) | 2023.12.29 |
---|---|
[Node.js_4기] Today_I_Learn : Node.js 설치, javascript학습 (23/12/28) (0) | 2023.12.28 |
[Node.js_4기] Today_I_Learn : Project_4 (23/12/27) (1) | 2023.12.27 |
[Node.js_4기] Today_I_Learn : Project_3 (23/12/26) (0) | 2023.12.26 |
[Node.js_4기] Today_I_Learn : Project_1 (23/12/21) (1) | 2023.12.21 |