[typescript] 타입스크립트와 GCP의 Cloud Firestore 데이터베이스 연동 방법

GCP의 Cloud Firestore는 서버리스 클라우드 네이티브 문서 데이터베이스로, 실시간 데이터 연동과 스케일링이 용이합니다. 이 문서에서는 타입스크립트로 Cloud Firestore에 데이터를 읽고 쓰는 방법을 알아보겠습니다.

환경 설정

우선 GCP 콘솔에서 Firebase 프로젝트를 생성하고, 프로젝트 설정 페이지에서 서비스 계정 탭을 클릭하여 새로운 서비스 계정 키를 생성합니다. 이렇게 생성한 키는 프로젝트의 json 파일로 다운로드 받아 프로젝트 루트에 저장합니다.

타입스크립트 프로젝트 설정

먼저 타입스크립트 프로젝트를 초기화하고, Cloud Firestore 클라이언트 라이브러리를 설치합니다.

$ npm init -y
$ npm install @google-cloud/firestore

이제 TypeScript 소스코드에서 Cloud Firestore 모듈을 불러올 수 있습니다.

import * as admin from 'firebase-admin';
import * as serviceAccount from './path-to-your-json-file.json';

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
});

const db = admin.firestore();

데이터 읽기 및 쓰기

다음은 Cloud Firestore에서 데이터를 읽고 쓰는 예제입니다. users 컬렉션에 새로운 문서를 추가하고, 해당 컬렉션의 데이터를 읽어옵니다.

const usersRef = db.collection('users');

// 데이터 쓰기
usersRef.doc('newUser').set({
  name: 'John Doe',
  age: 30,
  email: 'johndoe@example.com'
});

// 데이터 읽기
usersRef.get()
  .then(snapshot => {
    snapshot.forEach(doc => {
      console.log(doc.id, '=>', doc.data());
    });
  })
  .catch(err => {
    console.log('Error getting documents', err);
  });

이제 타입스크립트 프로젝트에서 Cloud Firestore에 접근하여 데이터를 읽고 쓸 수 있습니다. 데이터 모델링 및 복잡한 쿼리에 대해서는 Cloud Firestore 문서를 참고하시기 바랍니다.