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

home2 게시판 JavaScript, TS 게시판 firebase json 오류

firebase json 오류

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

    유용환
    참가자

    지금 로그인한 유저정보 알아내기 강의에서 

    그대로 코드를 했는데

    VM1106:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse (<anonymous>) at login.html?id=%EC%83%81%ED%92%881:98:34

    이런 오류가 나오는데 왜 그런건가요.

    98번째 줄은 

     $('#userName').html(JSON.parse(뺀거.displayName))

    이겁니다.

     

    #34294

    codingapple
    키 마스터

    로컬스토리지에 유저이름이 없으면 그런가봅니다 

    그 안에 유저이름이 없으면 하지말라고 if문을 추가합시다

     

    #34320

    유용환
    참가자

    저는 그냥 콘솔로 no data를 출력하도록했는데

    위에서 유저이름이 없으면 하지말라고 할때에서 하지말라고 할때를 어떻게 코드를

    짜야하나요.

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
       
       
        <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
        <link rel="stylesheet" href="main.css">
        <title>Welcome to Firebase Hosting</title>

        <script
      src="https://code.jquery.com/jquery-3.6.0.min.js"
      integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
      crossorigin="anonymous"></script>
      </head>
      <body>

        <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>

        <nav class="navbar navbar-expand-lg navbar-light bg-light">
          <div class="container-fluid">
            <a class="navbar-brand" href="#">사과마켓</a>
            <span id="userName"></span>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
              <span class="navbar-toggler-icon"></span>
            </button>
            <div class="collapse navbar-collapse" id="navbarNav">
              <ul class="navbar-nav">
                <li class="nav-item">
                  <a class="nav-link active" aria-current="page" href="#">Home</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="#">Features</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link" href="#">Pricing</a>
                </li>
                <li class="nav-item">
                  <a class="nav-link disabled">Disabled</a>
                </li>
              </ul>
            </div>
          </div>
        </nav>

        <div class="container mt-3">
        <div class="mb-3">
          <input type="text" class="form-control" placeholder="name" id="name-new">
        </div>
        <div class="mb-3">
          <input type="email" class="form-control" placeholder="email" id="email-new">
        </div>
        <div class="mb-3">
          <input type="password" class="form-control" placeholder="pw" id="pw-new">
        </div>
        <button type="submit" class="btn btn-primary" id="register">가입하기</button>
     </div>

     <div class="container mt-3">
        <div class="mb-3">
          <input type="text" class="form-control" placeholder="name" id="name">
        </div>
        <div class="mb-3">
          <input type="email" class="form-control" placeholder="email" id="email">
        </div>
        <div class="mb-3">
          <input type="password" class="form-control" placeholder="pw" id="pw">
        </div>
        <button type="submit" class="btn btn-primary" id="login">로그인하기</button>
        <button type="submit" class="btn btn-primary" id="logout">로그아웃하기</button>
     </div>

       
         
       
        <script>
         
            const firebaseConfig = {
              apiKey: "AIzaSyBvz6ps5fpCJ3wnaZCLvAshasvJMZDZdy8",
              authDomain: "haha-e16b0.firebaseapp.com",
              projectId: "haha-e16b0",
              storageBucket: "haha-e16b0.appspot.com",
              messagingSenderId: "1072073879277",
              appId: "1:1072073879277:web:d38609a530576dd5a7e6e4"
        };
        firebase.initializeApp(firebaseConfig);
        </script>
        <script>
            const db = firebase.firestore();
            const storage = firebase.storage();

            var 뺀거 = localStorage.getItem('user');
            $('#userName').html(JSON.parse(뺀거.displayName)) // json 해제
           
            firebase.auth().onAuthStateChanged((user)=>{   // 유저의 로그인 상태 확인 , 느림 localstorage에 저장
                if (user) {
                  console.log(user)
                  localStorage.setItem('user', JSON.stringify(user))   // localstorage 정보저장
                 
                }else{
                  console.log('no datas')
                }
              })

            $('#login').click(function(){
     
                var 이메일 = $('#email').val();
                var 패스워드 = $('#pw').val();

                firebase.auth().signInWithEmailAndPassword(이메일, 패스워드).then((result)=>{
                    console.log(result.user)
                })
    })
            $('#logout').click(function(){
                firebase.auth().signOut()
                localStorage.removeItem('user')
            })
           
            $('#register').click(()=>{

                var 이메일 = $('#email-new').val();
                var 패스워드 = $('#pw-new').val();
                var 이름 = $('#name-new').val();

                firebase.auth().createUserWithEmailAndPassword(이메일, 패스워드).then((result)=>{
                console.log(result)
                console.log(result.user)
                result.user.updateProfile( {displayName : 이름} ) // 이름 추가
            })
            })
       
        </script>
      </body>
    </html>

    #34341

    codingapple
    키 마스터

    if ( localStorage.getItem('user') == null) {

      $('#userName').html(JSON.parse(뺀거.displayName))

    }

    이렇게하면 되지않을까요 

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

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

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

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