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

home2 게시판 JavaScript, TS 게시판 firestrore 당근마켓 클론 코딩

firestrore 당근마켓 클론 코딩

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

    김동영
    참가자
    당근마켓 클론 코딩을 공부한 후에 제가 원하는 서비스로 수정 제작 하고있습니다
    firestore에 규칙을 설정 하는 부분에서 post라는 collcetion을 만들고 그안에 document를 만들었습니다
    document안에는 title, name, content, date, uid, agree라는 필드들을 만들었는데
    보안 규칙을
        match /post/{docId} {
        	allow read : if true
          allow create: if (request.auth != null 
    			// && request.resource.data.keys().hasOnly(['title', 'content'])
      		&& request.resource.data.title.size() > 0
      		&& request.resource.data.content.size() > 0);
          allow delete: if request.auth.uid == resource.data.uid || checkAdmin();
          allow update : if request.auth.uid == resource.data.uid || checkAdmin();
        }
    이렇게 지정 했습니다
    여기서 agree라는 필드는 로그인 한 사람 모두가 업데이트할 수 있게 하고 싶은데 이미 post에 allow update : if request.auth.uid == resource.data.uid || checkAdmin();
    이렇게 규칙을 지정해서 업데이트가 안되네요ㅠ
    특정 필드만 업데이트하는 규칙을 따로 지정 해줄 수 없나요?
    #42377

    codingapple
    키 마스터
    https://stackoverflow.com/questions/49671227/allow-update-on-single-field-in-firestore
    사용자가 update 요청하는 필드가 어떤 필드인지 확인한 다음에 
    그게 agree 필드 맞으면 update 허락하도록 코드짤 수 있습니다
    #43142

    익명
    비활성
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Document</title>
      <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous">
      <link href = "main.css" rel="stylesheet">
    </head>
    <body>
    <nav>
      <ul class="nav nav-tabs">
        <li class="nav-item">
          Active
        
        <li class="nav-item">
          Link
        
        <li class="nav-item">
          Link
        
        <li class="nav-item">
          Disabled
        
      
      </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"placeholder="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>
        const db = firebase.firestore();
        $('#send').click(function(){
            let save = {
                제목 : $('#title').val(),
                가격 : $('#price').val(),
                내용 : $('#content').val(),
            }
            db.collection('product').add(save)
        });
       
      </script>
      <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>
    const firebaseConfig = {
      apiKey: "AIzaSyBYLbUqQ3FhcUIrwzyL3ZQLZDe9IYAysC8",
      authDomain: "carrots-c4aa7.firebaseapp.com",
      projectId: "carrots-c4aa7",
      storageBucket: "carrots-c4aa7.appspot.com",
      messagingSenderId: "431773937554",
      appId: "1:431773937554:web:3f2c06f4cc41cffa285b4b",
      measurementId: "G-N7F3ENFWX2"
    };
      // Initialize Firebase
      firebase.initializeApp(firebaseConfig);
      // const app = initializeApp(firebaseConfig);
      // const analytics = getAnalytics(app);
      </script>
       <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
      
    </body>
    </html>
    
    
    upload.html파일 코드인데 업로드가 안돼요,,,영상이랑 똑같이 했는데 왜 안될까요,,?
    #43162

    codingapple
    키 마스터
    작성한 코드를 </body> 이전으로 옮깁시다
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 호 / 개인정보관리자 : 박종흠