개발자

지금 상황에서 파이어베이스에 데이터를 저장할때 쓰는 알맞은 코드를 찾고 싶습니다.

2월 19일조회 29

유튜브 무료 강의 따라하며 코딩 독학하고 있는 사람입니다. https://youtube.com/playlist?list=PLfLgtT94nNq3PzZinqs9Afuiai--r5NB_&si=ck9wzApzjvUZDJ6T 코딩애플님 강의를 따라서 파이어베이스 기반 웹사이트를 만들고 있었는데, 어떻게든 따라가다가 웹페이지에 개시글을 작성해서 파이어스토어 데이터베이스에 저장하는 부분에서 막혀버렸습니다. https://youtu.be/yYtTZcjCj_o?si=mg_U0cKB_kHUMhef 제가 실력이 매우낮아서, 이 상황에 알맞는 데이터 저장방법을 못찾겠어가지고 이렇게 물어봅니다. 아래의 코드 부분, 그러나까 웹페이지에 올린 개시글의 데이터가 파이어베이스의 데이터베이스에 기록하는 부분을 작업하다가 막혔습니다.

1<script>
2
3    const db = firebase.firestore();
4    $('#send').click(function(){
5      var 저장할거 = { 
6        제목 : $('#title').val(),
7        가격 : $('#price').val(),
8        내용 : $('#content').val(),
9      }
10      db.collection('product').add(저장할거)
11    });
12    
13  
14  </script>
이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

NickSoon님의 프로필 사진

에러 로고 없어요? 하물며 데이터 저장할거 데이터에 뭐라고 되어 있는지 아니면 .doc을 사용할 때는 저장이 되었는데 add를 하니 안된다 이런건지

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2월 19일

당신의 코드는 올바른 방식으로 파이어베이스 데이터베이스에 데이터를 저장하려고 시도하고 있습니다. 그러나 firebase firestore에 데이터를 추가하는 과정에서 문제가 발생했다면, 그 원인은 다음과 같을 수 있습니다. 1. Firebase 설정이 제대로 초기화되지 않았다: Firebase 프로젝트를 시작하기 전에 Firebase SDK를 초기화해야 합니다. 이는 당신의 웹사이트가 Firestore와 통신할 수 있게 해줍니다. 초기화 코드는 보통 이런 식입니다: ```javascript <script src="https://www.gstatic.com/firebasejs/8.2.7/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.2.7/firebase-firestore.js"></script> var firebaseConfig = { apiKey: "API KEY", authDomain: "AUTH DOMAIN", projectId: "PROJECT ID", storageBucket: "STORAGE BUCKET", messagingSenderId: "SENDER ID", appId: "APP ID" }; firebase.initializeApp(firebaseConfig); ``` 여기서 `"API KEY"`, `"AUTH DOMAIN"`, `"PROJECT ID"` 등의 부분들은 당신이 파이어베이스 콘솔에서 본인의 프로젝트 설정을 봤을 때 나오는 값들로 대체해야 합니다. 2. 도큐먼트 접근 권한 문제: Firestore 보안 규칙(security rules) 때문에 클라이언트가 도큐먼트에 접근하지 못하는 경우가 있습니다. 이를 확인하려면 Firebase 콘솔에서 Firestore 보안 규칙을 확인해봐야 합니다. 3. 데이터 추가 코드 문제: `db.collection('product').add(저장할거)` 라인이 비동기 함수인데, 이를 제대로 처리하기 위해서는 `.then()` 메소드나 `async/await` 구문을 사용해야 합니다. 위의 내용을 수정한 코드는 다음과 같습니다: ```javascript <script> const db = firebase.firestore(); $('#send').click(async function(){ var 저장할거 = { 제목 : $('#title').val(), 가격 : $('#price').val(), 내용 : $('#content').val(), } // 데이터 추가와 관련된 에러를 잡기 위해 try/catch 구문을 사용합니다. try { await db.collection('product').add(저장할거); alert('Data added successfully'); } catch(err) { console.error(err); } }); </script> ``` 이 변수명들(`#title`, `#price`, `#content`)은 웹페이지의 HTML 요소 id와 해당하는지 확인하셔야 합니다. 여전히 문제가 발생한다면, 좀 더 자세한 코드나 에러 메시지 등 추가 정보를 제공해주시면 도움이 될 것입니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!