커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
5주 마지막 숙제, 난감하네요
[왕초보] 코딩이 처음이어도 쉽게 배우는 웹개발 A to Z v0
5주차
북마크
조*희
댓글
7
추천
0
조회수
24
조회수
24
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


에러메세지는 없는데, 파이어 스토어에 보면 아래 첨럼 아무런 결과도 없고







작성한 코드 및 에러 메세지

<!doctype html>

<html lang="en">


<head>

<meta charset="utf-8">

<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">


<title>푸드파이터</title>

<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"

integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"

integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM"

crossorigin="anonymous"></script>

<style>

@import url('https://fonts.googleapis.com/css2?family=Black+Han+Sans&family=Gowun+Dodum&display=swap');


* {

font-family: 'Gowun Dodum', sans-serif;

}


body {

background-color: white;

color: black;

}


.header {

background-size: cover;

background-image:

url('https://images.unsplash.com/photo-1531697218799-ed0ae884c6c8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2080&q=80');

background-position: right;

height: 650px;

display: flex;

flex-direction: column;

}


.header>h1 {

margin: 0;

font-size: 40px;

}


.header>div {

font-size: 18px;

margin-top: 10px;

}


.form-button {

width: 150px;

height: 40px;

background-color: transparent;

border: 1px solid tr;

color: black;

font-size: 15px;

margin: 20px 10px 0px 0px;

}


.form-button:hover {

border: 2px solid black;

}


.info-button {

margin: 20px 0 0 15px;

height: 40px;

font-size: 14px;

}


.post {

width: 500px;

margin: 20px 0px 1px 20px;

padding: 20px;

box-shadow: 0px 0px 3px 0px transparent;

background-color: wheat;

}


.form-floating input,

.form-floating textarea {

color: black;

background-color: white;

}


.button2 {

display: flex;

justify-content: flex-end;

margin-top: 15px;

}


.button2>button {

margin-right: 10px;

}


.mycards {

width: 1600px;

margin: 30px auto;


flex-direction: row;

align-items: center;

}


.card {

border-radius: 30px;

background-color: white;

border: none;

color: black;

margin-left: 50px;

}


.card-img-top {

object-fit: cover;

height: 250px;

border-radius: 20px;

}


.card-title {

margin-top: 10px;

font-size: 18px;

}


.card-body {

border: blanchedalmond 2px solid;

border-radius: 20px;

}


.card-text {

color: black;

}


.comment {

color: black;

}


.play-button {

display: flex;

justify-content: flex-start;

margin-top: 15px;

}


a.nav-link {

color: #F17228;

font-size: large;

}


.icon {

height: 50px;

}


.card-button {

background-color: orange;

color: white;

text-align: center;

padding: 10px 15px;

border: none;

border-radius: 6px;

cursor: pointer;

}


.card-title {

font-weight: bold;

}


.card-button> :hover {

background-color: darkorange;

}


#input-card {

width: 500px;

margin: 0px 0px 0px 135px;

padding: 20px;

background-color: #f9f9f9;

border-radius: 10px;

box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);

float: left;

}


.form-floating input,

.form-floating textarea {

color: black;

background-color: #f9f9f9;

border: 1px solid #ccc;

border-radius: 5px;

margin-bottom: 10px;

padding: 10px;

width: 100%;

}


.form-floating label {

color: #333;

}


.input-group button,

.input-group select {

background-color: rgb(168, 161, 161);

color: white;

border: none;

border-radius: 5px;

cursor: pointer;

margin-top: 10px;

}


.input-group button:hover,

.input-group select:hover {

background-color: gray;

}


.button2 {

text-align: right;

}


.button2 button {

background-color: #F17228;

color: white;

border: none;

border-radius: 5px;

cursor: pointer;

}


.button2 button:hover {

background-color: #f3620f;

}


.jumbotron-message {

margin-left: 150px;

font-size: 1500px;

}

</style>

<script type="module">

import { initializeApp } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-app.js";

import { getFirestore } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

import { collection, addDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

import { getDocs } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";



// For Firebase JS SDK v7.20.0 and later, measurementId is optional

const firebaseConfig = {

apiKey: "AIzaSyCZUqmHG3dbZ0s5gaUiSk3IFmwzK15VTME",

authDomain: "sparta-84d3a.firebaseapp.com",

projectId: "sparta-84d3a",

storageBucket: "sparta-84d3a.appspot.com",

messagingSenderId: "732287973731",

appId: "1:732287973731:web:47a10fefb2c549414b7b56",

measurementId: "G-LF742L94HJ"

};



const app = initializeApp(firebaseConfig);

const db = getFirestore(app);


// 데이터 추가

$("#addBtn").click(async function () {


// title_input, comment_input, image_input id를 가진 HTML 요소에서 값을 가져와서 title, comment, image 변수에 저장해 주세요.


try {

const docRef = await addDoc(collection(db, "foods"), {


// 각각 담은 변수를 컬렉션 필드에 title, comment, image에 각각 넣어주세요.


});


alert("음식이 추가 되었습니다!");

window.location.reload();

} catch (e) {

console.error("Error adding document: ", e);

}

});


// 데이터 읽기 및 카드 생성

$("#card").empty();

const querySnapshot = await getDocs(collection(db,"foods"));


querySnapshot.forEach((doc) => {


let title = doc.data().title;

let comment = doc.data().comment;

let star = "⭐".repeat(doc.data().star);

let image = doc.data().image;


// 문서의 title, comment, image, star 필드에서 데이터를 추출한 변수명을 갖고,

// tempHtml(temp_html, snake case로 바꿈) 문자열에 각 데이터를 포함한 카드의 HTML 코드를 생성하세요.


let tmep_html =

`<div class="col">

<div class="card h-100">

<img src="${image}">

class="card-img-top" alt="...">

<div class="card-body">

<h4 class="card-title">${title}</h4>

<p class="card-text">${star}</p>

<p>⭐⭐⭐⭐</p>

<button class="card-button">${comment}</button>

</div>

</div>

</div>`;


$("#card").append(temp_html);

});


</script>

첨부파일 (1)

sparta - Cloud Firestore - 데이터 - Firebase Console.pdf
(227.044K)
취소
 공유
취소
댓글 0
댓글 알림
나의얼굴