firebase의 읽기 메서드 get()

김민재·2025년 5월 19일

get은 firebase에서 데이터를 읽는 가장 대표적인 메서드로서, 문서 또는 컬렉션의 현재 상태를 읽어오는 비동기 메서드이다.

get을 문서 참조에 호출할 때와 컬렉션 참조에 호출할 때 반환하는 결과를 비교해보자.


1. 문서 참조에 호출할 경우

await DocumentReference.get()

기본적으로 get 메서드를 호출하면 프로미스를 반환하며, 이 프로미스가 이행 상태(fulfilled)가 되면 await을 통해 DocumentSnapshot 객체를 반환받을 수 있다.

🔎 DocumentSnapshot 객체란?

DocumentSnapshot 객체는 Firestore 문서 하나의 스냅샷(복사본)을 표현하는 객체로서 다음과 같은 속성과 메서드로 이루어져 있다.

속성/메서드설명
.exists문서가 존재하면 true, 없으면 false
.id문서의 ID (예: "user123")
.ref이 snapshot의 참조 (DocumentReference 객체)
.data()문서의 모든 데이터를 JS 객체로 반환 (문서가 없으면 undefined)
.get(fieldPath)특정 필드 값만 가져옴 (문서가 없거나 필드가 없으면 undefined)
.createTime문서가 처음 생성된 시간 (Timestamp 객체)
.updateTime마지막으로 수정된 시간
.readTime이 snapshot이 읽힌 시간 (쿼리 실행 시점)

이러한 속성과 메서드들을 통해 문서의 데이터와 여러 메타데이터들을 참조할 수 있다.


2. 컬렉션 참조에 호출할 경우

await CollectionReference.get()

문서 참조에 호출할 경우와 마찬가지로 프로미스를 반환하며, 이행 상태가 되면 QuerySnapshot 객체를 반환한다.

🔎 QuerySnapshot 객체란?

컬렉션은 여러 개의 문서들로 구성되어 있다. 따라서 QuerySnapshot 객체는 문서를 나타내는 여러 개의 DocumentSnapshot 객체들을 포함한다. 주요 속성과 메서드는 다음과 같다.

속성/메서드설명
docsDocumentSnapshot 객체들의 배열
forEach()각 문서에 대해 반복 수행
empty쿼리 결과가 비었는지 (true 또는 false)
size포함된 문서 수 (숫자)

이러한 속성과 메서드드를 통해 문서 수와 같은 컬렉션에 대한 정보를 파악할 수 있고, 문서들을 순회할 수 있다.

profile
넓이보다 깊이있게

0개의 댓글