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

home2 게시판 JavaScript, TS 게시판 if 조건문 질문(파이어베이스 당근 강의 응용)

if 조건문 질문(파이어베이스 당근 강의 응용)

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

    이형민
    참가자
    아래 볼드처리한 코드 부분에서 해결이 되지 않는 부분이 있어 질문 남깁니다.
    detail.html 페이지에서 만약 로그인된 '내uid'와 게시글을 업로드한 사람의 '판매자uid'가 일치한다면, 'edit', 'delete' 버튼을 출력하고자 하고,
    일치하지 않는다면 'chat' 버튼을 출력하고자 합니다.
    
    판매자의 uid는 현재 파이어스토어 데이터베이스 상의 product 컬렉션에 저장되어있습니다. 현재 콘솔 상에 '판매자uid'를 출력시킨 상황이긴 하나,
    어떻게 해야 위에 기재한 조건문을 완료할 수 있는지 모르겠습니다.
    
    거짓말 안치고 4일을 고민했습니다.
    
    선생님 제발 코드 좀 작성 부탁드릴게요 답답해 미치겠습니다.
    
    <!DOCTYPE html>
    <html lang="ko">
    <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>상세보기</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet"
    integrity="sha384-rbsA2VBKQhggwzxH7pPCaAqO46MgnOM80zW1RWuH61DGLwZJEdK2Kadq2F9CUG65" crossorigin="anonymous" />
    <link href="css/detail.css" rel="stylesheet" />
    <link href="css/basic.css" rel="stylesheet" />
    <link href="css/upload.css" rel="stylesheet" />
    </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>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"
    integrity="sha384-kenU1KFdBIe4zVF0s0G1M5b4hcpxyD9F7jL+jjXkk+Q2h455rYXK/7HAuoJl+0I4"
    crossorigin="anonymous"></script>
    <script src="https://code.jquery.com/jquery-3.6.2.min.js"
    integrity="sha256-2krYZKh//PcchRtd+H+VyyQoZ/e3EcrkxhM8ycwASPA=" crossorigin="anonymous"></script>
    <script>
    var firebaseConfig = {
    apiKey: "AIzaSyC0yKgR3yvA5YMKwCOk_SIQbfDIpyKh20w",
    authDomain: "stockbgm-c32fb.firebaseapp.com",
    projectId: "stockbgm-c32fb",
    storageBucket: "stockbgm-c32fb.appspot.com",
    messagingSenderId: "406644331721",
    appId: "1:406644331721:web:fac7736eebed51e9fca918",
    measurementId: "G-4SPZTKP7YY",
     };
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    </script>
    <nav class="navbar navbar-expand-lg bg-light">
    <div class="container-fluid">
    < img src="images/logo.png">
    <div id="nav-name">
    <span class="ms-auto mx-2" id="userName"></span>
    </div>
    <div id="nav-login">
    <span class="ms-auto mx-2" id="userName">로그인</span>
    </div>
    <div id="nav-logout">
    <span class="ms-auto mx-2" id="userName"><a class="navbar-brand" type="submit" class="btn btn-primary"
    id="logout">로그아웃</span>
    </div>
    <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">
    <div id="nav-mypage">
    <li class="nav-item">
    마이페이지
    
    </div>
    <li class="nav-item">
    About
    
    <li class="nav-item dropdown">
    
     Bgm 마켓
    
    <ul class="dropdown-menu">
    
  • 마켓
  • 중고 마켓
  • 구매 목록
  • <hr class="dropdown-divider">
  • 구매하기
  • 판매하기
  • <li class="nav-item"> 보증서(예정) <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">
    <div class="detail-title">
     상세페이지
    </div>
    <div class="detail-pic my-4" style="background-image: url('https://placeimg.com/640/380/tech')"></div>
    <div>
    <h5 class="author">업로더 : </h5>
    <hr>
    <h5 class="title">제목 : </h5>
    <p class="date">게시일 : </p>
    <p class="content">설명 : </p>
    <p class="price">가격 : </p>
    </div>
    <button class="btn btn-outline-secondary" id="edit">수정</button>
    <button class="btn btn-outline-secondary" id="delete">삭제</button>
    <button class="btn btn-outline-secondary" id="chat">채팅</button>
    </div>
    <script>
    const db = firebase.firestore();
    const storage = firebase.storage();
    var 내uid = JSON.parse(localStorage.getItem('user')).uid
    $('#chat').click(function () {
    setTimeout(() => window.location.href = 'chat.html', 2000);
    var 데이터 = {
    who: [내uid, 판매자uid],
    판매자uid,
    product: 상품명,
    date: new Date()
     }
    db.collection('chatroom').add(데이터)
     })
    var 판매자uid;
    var 상품명;
    var 쿼리스트링 = new URLSearchParams(window.location.search);
    db.collection('product').doc(쿼리스트링.get('id')).get().then((result) => {
    console.log(result.data())
    판매자uid = result.data().uid;
    상품명 = result.data().title0;
    $('.author').html('업로더 : ' + result.data().name0)
    $('.title').html('제목 : ' + result.data().title0)
    $('.date').html('게시일 : ' + result.data().date0.toDate().toLocaleString())
    $('.content').html('설명 : ' + result.data().content0)
    $('.price').html('가격 : ' + result.data().price0 + '원')
    $('.detail-pic').css('background-image', `url(${result.data().image0})`)
     })
    $('#edit').click(function () {
    window.location.href = 'edit.html?id=' + 쿼리스트링.get('id')
     })
    $('#delete').click(function () {
    db.collection("product").doc(쿼리스트링.get('id')).delete().then(() => {
    setTimeout(() => window.location.href = "market.html", 1500);
     })
     })
    
    
    
    
    $(function () {
    db.collection('product').doc(쿼리스트링.get('id')).get().then((result) => {
    console.log(result.data().uid)
     })
    if (내uid == 판매자uid) {
    document.getElementById("edit").style.display = "";
    document.getElementById("delete").style.display = "";
    document.getElementById("chat").style.display = "none";
     } else {//조건 1이 아닐떄
    document.getElementById("edit").style.display = "none";
    document.getElementById("delete").style.display = "none";
    document.getElementById("chat").style.display = "";
     }
     })
    // // 유저정보 확인
    // if (localStorage.getItem('user') != null) {
    // var 뺀거 = localStorage.getItem('user')
    // $('#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))
    // }
    // })
    
    
    $(function () {
    if (localStorage.getItem('user') != null) {
    var 뺀거 = localStorage.getItem('user')
    $('#userName').html(JSON.parse(뺀거).displayName)
    document.getElementById("nav-login").style.display = "none";
    document.getElementById("nav-logout").style.display = "";
    document.getElementById("nav-name").style.display = "";
    document.getElementById("nav-mypage").style.display = "";
     } else {//조건 1이 아닐떄
    document.getElementById("nav-login").style.display = "";
    document.getElementById("nav-logout").style.display = "none";
    document.getElementById("nav-name").style.display = "none";
    document.getElementById("nav-mypage").style.display = "none";
     }
     })
    firebase.auth().onAuthStateChanged((user) => {
    if (user) {
    console.log(user.uid)
    console.log(user.displayName)
    localStorage.setItem('user', JSON.stringify(user))
     }
     })
    // 내uid = localStorage.getItem('user').uid
    // 판매자uid = db.collection('product').get().uid
    $('#logout').click(function () {
    firebase.auth().signOut()
    localStorage.removeItem('user')
    setTimeout(() => window.location.href = "index.html", 3500);
    alert('로그아웃을 완료했습니다.');
     })
    </script>
    </body>
    </html>
    #62346

    codingapple
    키 마스터
    if문들을 위나 윗윗 then 안으로 옮겨봅시다
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 호 / 개인정보관리자 : 박종흠