어제 SNS 로그인 기능이 제대로 구현이 안되는 문제가 배포를 하지 않아서인줄 알았는데, 다시 보니 SNS 이미지를 감싸고 있는 버튼에 이벤트리스너를 등록하는게 아니라, 범위를 좁혀서 직접적으로 이미지 태그에 이벤트리스너를 등록하니까 정상적으로 작동 했다.
수정 전
<div class="container__right__login__sns">
<button
name="google"
onclick="socialLogin(event)"
class="container__right__login__sns__button"
>
<img
src="./assets/google.png"
class="container__right__login__sns__google"
/>
</button>
<button
name="github"
onclick="socialLogin(event)"
class="container__right__login__sns__button"
>
<img
src="./assets/github.png"
class="container__right__login__sns__github"
/>
</button>
</div>
수정 후
<section class="container__right__login__sns">
<img
name="google"
onclick="socialLogin(event)"
src="./assets/google.png"
class="container__right__login__sns__google"
/>
<img
name="github"
onclick="socialLogin(event)"
src="./assets/github.png"
class="container__right__login__sns__github"
/>
</section>
게시글을 미리 DB 컬렉션에 저장했다가, 메인 페이지의 분류 버튼을 누를 때마다 각각 다른 content를 불러오는 기능을 구현해야 했다.
테스트로 했을 땐 잘 됐지만, 프로젝트에선 버튼을 누르면 DB-댓글 컬렉션에서 댓글리스트도 불러와야되고, DB-게시글 컬렉션에서 게시글 리스트도 불러와야 된다.
즉, 두 개의 컬렉션에서 DB 값을 불러와야 됐다.
하루종일 씨름을 하다가, 결국 튜터님의 도움을 받았는데 이 부분도 SNS 기능 문제 해결했을 때와 같은 맥락이었어서 허무하게 해결이 되었다.
그치만, 버튼마다 다른 게시글을 가져와야해서 이 부분을 내일 좀더 보완해야 된다.
수정 전
<div id="question-list">
<div class="card questionCard">
<div class="card-body">
<blockquote class="blockquote mb-0">
<input type="text" value="testtest" id="commentId" />
</blockquote>
</div>
</div>
</div>
// 게시글 가져오기
export const getQuestionList = async () => {
let qstObjList = [];
const q = query(collection(dbService, 'questions'));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
const questionObj = {
content: doc.content,
...doc.data(),
};
qstObjList.push(questionObj);
});
const questionList = document.getElementById('question-list');
questionList.innerHTML = '';
qstObjList.forEach((qstObj) => {
const temp_html = `<div class="card questionCard">
<div class="card-body">
<blockquote class="blockquote mb-0">
<input type="text" value=" ${qstObj.content}" id="commentId" />
</blockquote>
</div>
</div>`;
questionList.innerHTML = temp_html;
});
};
수정 후
<div id="question-list">
<div class="card questionCard">
<div class="card-body">
<blockquote class="blockquote mb-0">
<!-- <p class="commentText" id="commentId">
1조에서 가장 코딩 잘하는 사람 과연 누구일까요??
</p> -->
<input type="text" id="commentId"/>
</blockquote>
</div>
</div>
</div>
/ 게시글 가져오기
export const getQuestionList = async () => {
let qstObjList = [];
const q = query(collection(dbService, 'questions'));
const querySnapshot = await getDocs(q);
querySnapshot.forEach((doc) => {
const questionObj = {
content: doc.content,
...doc.data(),
};
qstObjList.push(questionObj);
});
const commentInput = document.getElementById('commentId');
};