본문 바로가기
TIL

firebase updateDoc, getDoc 으로 데이터 조회 및 수정하기 / git branch 최신화

by dev__log 2023. 12. 26.

등록된 방명록 수정하기

방명록 각 데이터의 식별 가능한 id 가져오기

(코드의 일부)

let docs = await getDocs(collection(db, 컬렉션명));
docs.forEach((doc) => {
    let row = doc.data();
    let html = `
    	<p>닉네임 : ${row.nicname}</p>
        <p>내용 : ${row.content}</p>
        <input class="docId" type="hidden" value="${doc.id}">
    `
});

 

 

firebase 공식 문서를 통해 doc.id 를 가져왔다.

수정시에 방명록의 id를 넘겨주기 위해 input hidden 으로 만들고 value 에 doc.id 를 넣었다.

수정 기능

import { doc, updateDoc, getDoc } from "https://www.gstatic.com/firebasejs/9.22.0/firebase-firestore.js";

먼저, 수정에 필요한 doc, updateDoc, getDoc 을 import 한다.

updateDoc 은 문서의 일부를 수정할 때 사용하고, getDoc 은 문서 1개의 데이터를 가져올 때 사용한다.

 

수정할 때 해당 게시물의 비밀번호가 맞는 경우에만 수정이 가능해야 하므로

수정완료 버튼을 누를 때 getDoc 으로 문서 데이터를 가져와서 그 데이터의 기존 비밀번호와 현재 입력한 비밀번호를 비교했다.

(코드의 일부)

$('.confirmBtn').on('click', async function(e){ 
    //생략...
    const docRef = doc(db, 컬렉션명, id);
    const docSnap = await getDoc(docRef);
    const data = docSnap.data();

    //비밀번호 검증
    if(password != data.pw){
    	alert('비밀번호가 다릅니다. 비밀번호 확인 후 다시 입력해주세요.');
    	return;
    }

    await updateDoc(doc(db, 컬렉션명, id), {
    	content: contents
    });

    alert('수정이 완료되었습니다.');
    window.location.reload();
});

id 부분은 html 그릴 때 넣은 input hidden doc.id 를 가져와서 넣으면 된다.

 

 

[참고한 문서]

https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ko#web-modular-api_8

https://firebase.google.com/docs/firestore/query-data/get-data?hl=ko

 

Cloud Firestore로 데이터 가져오기  |  Firebase

Firebase 데모 데이가 시작되었습니다. Google 최고의 기술을 활용하여 AI 기반 풀 스택 앱을 빌드하고 성장시키는 방법에 관한 데모를 시청하세요. 의견 보내기 Cloud Firestore로 데이터 가져오기 컬렉

firebase.google.com

 


 

다른 브랜치로 이동 후 최신화 하기

미니 프로젝트를 진행하면서 각자 브랜치에서 작업 후 머지를 진행하고 있는데, 다른 브랜치로 checkout 하여 소스를 확인하는데 계속 예전 소스가 보였다.

git fetch, git remote update를 해도 같은 상태여서 튜터님께 도움을 요청했다.

 

  • git checkout 브랜치명
  • git pull

이렇게 하면 최신화 완료!

 

git fetch와 git remote update에 대해 알아보았다.

git fetch

현재 위치한 원격 브랜치 최신 상태로 업데이트.

(로컬에 변경사항 적용되지 않음)

 

git remote update

모든 원격 브랜치 최신 상태로 업데이트

(로컬에 변경사항 적용되지 않음)

 

git pull

현재 위치한 원격 브랜치 업데이트 및 로컬에 변경사항 적용.

'TIL' 카테고리의 다른 글

두 번째 팀 프로젝트 시작  (0) 2024.01.10
git 명령어 두 번째  (0) 2024.01.10
data attribute / dataset / getAttribute()  (0) 2023.12.28
[TIL]  (1) 2023.12.22
첫 팀프로젝트 시작 / git 명령어 / 리눅스 명령어  (1) 2023.12.21