미니프로젝트를 진행하면서 firebase를 통해 데이터를 연동하는 작업을 맡게 되었다.
let docs = await getDocs(collection(db, "Profile"));
docs.forEach((doc) => {
let row = doc.data();
let image = row['image'];
let name = row['name'];
let MBTI = row['MBTI'];
let temp_html = `
<div class="col" id="storyCard1">
<div class="card">
<a href="storyCard1.html">
<img src="${image}" class="card-img-top" alt="이미지를 누르면 연결됩니다.">
</a>
<div class="card-body">
<h5 class="card-title">${name}</h5>
<p class="card-text">${MBTI}</p>
</div>
</div>
</div> `;
$('#card').append(temp_html);
});
첫 번째 구현한 페이지의 코드는 다음과 같았고, DB에는 사진을 직접 넣지 않고 storage에서 요청하는 링크를 삽입하는 방식으로 진행할 예정이다.
총 5개 현재 하드코딩이 되어있는데 그 부분을 DB에서 받아오는 형식으로 짧게 줄이려고한다.
문제는 여기서부터 시작됐다.
$('#makeComment').click(async function () {
let title = $('#title').val();
let Password = $('#Password').val();
// let comment = $('#comment').val();
let comments = [{name: "kim", pw: "1234", content: "안녕하세요"}, {name: "park", pw: "2222", content: "반갑습니다"}]
//map / keyword: html for 문
let temp_html = `
<div class="col">
<div class="card border-info mb-3" style="max-width: 18rem">
<div class="card-body">
<h5 class="card-title">${title}</h5>
<p class="card-text">${comment}</p>
<button type="button" class="btn btn-outline-warning">수정</button>
<button type="button" class="btn btn-outline-danger delete-btn">삭제</button>
</div>
</div>
</div>`;
$('#card').append(temp_html);
await addDoc(collection(db, "profile"), doc);
alert('저장 완료!');
window.location.reload();
DB를 불러오기 위해, map과 for문을 조금 더 자세히 다뤄보기로 하였다.
firebase를 이틀 째 잡고 있는데 궁금한게 점점 더 늘어가는 느낌이다.
'JavaScript' 카테고리의 다른 글
2023.12.25 기록 ( callback, promise, async, await) (0) | 2023.12.25 |
---|---|
2023.12.23 기록 (JS 객체와 배열 1. 생성자 함수) (1) | 2023.12.23 |
2023.12.20 기록 (객체와 prototype, 그리고 includes) (0) | 2023.12.20 |
2023.12.19 기록 (콜백함수와 gpt에 대한 이야기) (0) | 2023.12.19 |
2023.12.15 기록 (javascript 연산자) (1) | 2023.12.15 |