여씨의 개발이야기

[입문] firestore document의 하위 collection 가져오는 방법 본문

🔥 Firebase

[입문] firestore document의 하위 collection 가져오는 방법

yeossi 2022. 1. 9. 13:08

토이 프로젝트에서 firestore를 사용하다 당황스러운 일이 발생했다. 바로 firestore의 document 하위 collection을 가져오는 함수인 listCollections()가 제공되지 않는다는 것이다. 

외않되?

이리저리 머리를 굴려보며 get을 해와도 잘 가져오지 못 하는데 생각보다 간단한 방법으로 가져올 수 있었다.  

예를 들어 위와 같은 구조의 DB가 있다고 하자. 

그럼 보통 제일 상위 컬렉션인 greetings를 가져올 때에는 아래와 같이 query(collection(database, "컬렉션이름"))...... doc.data()로 데이터를 가져올 수 있다. 

const database = getFirestore(firebase);  //정보가 올바르면 아래 파이어스토어 접근
        const q = query(collection(database, "greetings"))
        getDocs(q).then((querySnapshot) => {
            querySnapshot.forEach((doc) => {
                setCard(cards => [...cards, doc.data()])
            })
        })

그럼 test라는 하위 컬렉션을 가져오려면? 매우 간단하다. 아래와 같이 하위 컬렉션의 경로를 넣어주면 된다. 

const database = getFirestore(firebase);  //정보가 올바르면 아래 파이어스토어 접근
        const q = query(collection(database, "greetings/하위문서/test"))
        getDocs(q).then((querySnapshot) => {
            querySnapshot.forEach((doc) => {
                setCard(cards => [...cards, doc.data()])
            })
        })

 

Comments