Firebase 9 Firestore getDoc()을 사용하여 ID로 문서 가져오기

Firebase 버전 9 Cloud Firestore 데이터베이스에서 getDoc() 메서드를 사용하여 ID로 문서를 가져오는 방법을 알아보세요.
  • Get All Documents From A Collection
  • ID로 문서 가져오기 → 현재 위치

  • 샘플 Firestore 데이터베이스에는 아래 스크린샷과 같이 4개의 문서가 포함된 도시 컬렉션이 있습니다.



    도시 컬렉션의 첫 번째 문서를 ID로 가져오겠습니다.

    이 경우: 해당 ID(2l3bcSGs2vZBIc3RODwp)를 사용하는 Edmonton 문서

    Firestore 데이터베이스를 가져오고 필요한 세 가지 방법을 해체합니다.

  • getFirestore() → Firestore 데이터베이스

  • doc() → 데이터베이스 참조, 컬렉션 이름 및 문서 ID를 인수로 사용합니다.

  • getDoc() → getDoc() 쿼리는 doc() 메서드에서 언급한 컬렉션 기반 참조에서 특정 문서의 데이터를 가져옵니다.

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


    The import statement uses the CDN version of the Firebase SDK in this example.



    Firestore 데이터베이스 초기화:

    const db = getFirestore();
    


    getDoc() 메서드는 doc() 메서드인 단일 인수를 사용합니다.

    doc() 메서드의 세 가지 인수는 다음과 같습니다.
  • 데이터베이스 → 디비
  • 이 경우 컬렉션 이름 → 도시(위 스크린샷 참조)
  • 문서의 ID → 이 경우 2l3bcSGs2vZBIc3RODwp(위 스크린샷 참조)

  • doc() 메서드를 호출하고 세 개의 인수를 전달한 다음 docRef(문서 참조의 약식)라는 상수에 할당합니다.

    const docRef = doc(db, "cities", "2l3bcSGs2vZBIc3RODwp");
    


    docRef를 인수로 전달하는 getDoc() 메서드를 호출합니다.

    getDoc() 메서드는 약속을 반환하고 그 앞에 await 키워드를 추가합니다.

    docSnap(문서 스냅샷의 약식)이라는 상수에 할당합니다.

    const docSnap = await getDoc(docRef);
    


    실제 문서 데이터를 얻으려면 docSnap 개체에서 data() 메서드를 호출합니다.

    docSnap.data();
    


    클라이언트 측 오류가 있는 경우 이를 처리하기 위해 try catch 블록으로 비동기 쿼리를 래핑합니다.

    try {
        const docSnap = await getDoc(docRef);
        console.log(docSnap.data());
    } catch(error) {
        console.log(error)
    }
    


    사용하기 전에 대상 문서가 실제로 존재하는지 확인하십시오.

    try {
        const docSnap = await getDoc(docRef);
        if(docSnap.exists()) {
            console.log(docSnap.data());
        } else {
            console.log("Document does not exist")
        }
    
    } catch(error) {
        console.log(error)
    }
    

    좋은 웹페이지 즐겨찾기