• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Node.js, Express 게시판 upload.html 오류

upload.html 오류

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #88860

    황철민
    참가자
    게시판 작성하고 올리면 콘솔창에 이런 오류가 나옵니다.
    prebuilt.js:184 Uncaught (in promise) FirebaseError: Function addDoc() called with invalid data. Unsupported field value: undefined (found in field uid in document product/0Ea3QneC8oq3SgI9K1L4)
    at new qr (prebuilt.js:184:9)
    at Ey (prebuilt.js:16125:16)
    at Hp.Bc (prebuilt.js:15728:16)
    at prebuilt.js:16042:17
    at py (prebuilt.js:16000:12)
    at prebuilt.js:16059:19
    at ii (prebuilt.js:621:70)
    at yy (prebuilt.js:16058:63)
    at Wp (prebuilt.js:15771:15)
    at nm.add (prebuilt.js:18000:28)
    --------------------------------------------------------------
    
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <link rel="stylesheet" href="main.css">
      <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
    </head>
      <nav class="navbar navbar-expand-lg bg-body-tertiary">
        <div class="container-fluid">
          당근
          <span class="ms-auto mx-2" id="userName">Name</span>
          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
          </button>
          <div class="collapse navbar-collapse" id="navbarSupportedContent">
            <ul class="navbar-nav me-auto mb-2 mb-lg-0">
              <li class="nav-item">
                Home
              
              <li class="nav-item">
                Link
              
              <li class="nav-item dropdown">
                
                  Dropdown
                
                <ul class="dropdown-menu">
                  
  • Action
  •              
  • Another action
  •              
  • <hr class="dropdown-divider">
  •              
  • Something else here
  •                                 <li class="nav-item">             Disabled                           <form class="d-flex" role="search">           <input class="form-control me-2" type="search" placeholder="Search" aria-label="Search">           <button class="btn btn-outline-success" type="submit">Search</button>         </form>       </div>     </div>   </nav>
      <div class="container mt-3">
        <input type="text" class="form-control mt-2" id="title" placeholder="title">
        <textarea class="form-control mt-2" id="content">content</textarea>
        <!-- <input type="text" class="form-control mt-2" id="price" placeholder="price"> -->
        <input class="form-control mt-2" type="file" id="image">
        <button class="btn btn-danger mt-3" id="send">올리기</button>
      </div>
      
      <script src="https://www.gstatic.com/firebasejs/8.6.5/firebase-app.js"></script>
      <script src="https://www.gstatic.com/firebasejs/8.6.5/firebase-auth.js"></script>
      <script src="https://www.gstatic.com/firebasejs/8.6.5/firebase-firestore.js"></script>
      <script src="https://www.gstatic.com/firebasejs/8.6.5/firebase-storage.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
          
        <script src="https://code.jquery.com/jquery-3.7.0.min.js" integrity="sha256-2Pmvv0kuTBOenSvLm6bvfBSSHrUJ+3A7x6P5Ebd07/g=" crossorigin="anonymous"></script>
      <script >
    
    
        const firebaseConfig = {
          apiKey: "AIzaSyBaPocafLkaD6G-OlMHkO64YDmAbgYsW5A",
          authDomain: "homepage-9978e.firebaseapp.com",
          projectId: "homepage-9978e",
          storageBucket: "homepage-9978e.appspot.com",
          messagingSenderId: "237249758140",
          appId: "1:237249758140:web:5edb2687779d50ffb361b9",
          measurementId: "G-26XL67DWXG"
        };
        firebase.initializeApp(firebaseConfig);
      </script>
      
      <script>
        
        const db = firebase.firestore();
        const storage = firebase.storage();
        $('#send').click(function(){
        
        //이미지 저장
        var file = document.querySelector('#image').files[0];
        //폴더 지정 이미지 저장 선언
        var storageRef = storage.ref();
        var 저장할경로 = storageRef.child('image/'+file.name);
        //저장하는 기능
        var 업로드작업 = 저장할경로.put(file);
        // var 업로드작업 = 저장할경로.put(지정한 js로 파일 넣으면됨);
        업로드작업.on( 'state_changed', 
          // 변화시 동작하는 함수 
          null, 
          //에러시 동작하는 함수
          (error) => {
            console.error('실패사유는', error);
          }, 
          // 성공시 동작하는 함수
          () => {
            업로드작업.snapshot.ref.getDownloadURL().then((url) => {
              console.log('업로드된 경로는', url);
              var 저장할거 = { 
                제목 : $('#title').val(),
                // 가격 : $('#price').val(),
                내용 : $('#content').val(),
                날짜 : new Date(),
                이미지 : url,
                uid : localStorage.getItem('user').uid,
                이름 : localStorage.getItem('user').displayName,
              }
          db.collection('product').add(저장할거).then((result)=>{
            console.log(result);
            window.location.href = "/index.html";
          }).catch((err)=>{
            console.log(err);
          })
          //.than(성공 했을때).catch(실패 했을때) 에러 체크
            });
          }
        );    
        })
        var 뺀거 = localStorage.getItem('user');
            if(localStorage.getItem('user') != null){
            $('#userName').html(JSON.parse(뺀거).displayName);
            }
            firebase.auth().onAuthStateChanged((user)=>{
                if (user) {
                  console.log(user.uid);
                  console.log(user.displayName);
                  localStorage.setItem('user', JSON.stringify(user));
                  
                }
              })//이름 뜨는 기능
       
      </script>
    </body>
    </html>
     
    #88951

    codingapple
    키 마스터
                제목 : $('#title').val(),
                // 가격 : $('#price').val(),
                내용 : $('#content').val(),
                날짜 : new Date(),
                이미지 : url,
                uid : localStorage.getItem('user').uid,
                이름 : localStorage.getItem('user').displayName,
    
    이거중에 undefined가 있다는거같은데 전부 출력해보거나 
    undefined면 저장하지말라고 if문같은거 씁시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠