Firestore

|

FireStore란?

Firebase에서 제공하는 NoSQL 형식의 클라우드 데이터베이스다.

간단 요약:

  • 데이터를 저장하고 불러와주는 일을 쉽게 도와준다.

  • 실시간 데이터 동기화를 지원해주며, 웹,안드로이드,ios에서 데이터를 저장하고 동기화 할 수 있다.

  • 데이터는 문서(document)와 컬렉션(collection)의 형태로 저장되며, 효율적인 쿼리작성이 가능하다.

  • 오프라인 지원 제공

장점

  • 실시간 데이터 동기화

    • 실시간 채팅 및 데이터 분석 등 실시간 기능 애플리케이션 개발 가능
  • 구조화된 데이터

    • 문서 - 컬렉션 형태로 데이터 저장 / 구조화된 데이터 쉽게 저장하고 불러올 수 있다.
  • 보안

    • 사용자 기반의 보안규칙 설정이 가능하다.

FireStore 사용방법

  • Firebase 프로젝트 생성 & Firebase SDK 앱 추가

  • Firestore 인스턴스 가져오기

  • firebaseApp.tsx

import { initializeApp, FirebaseApp, getApp } from 'firebase/app';
import {getFirestore} from 'firebase/firestore';
import 'firebase/auth';

export let app: FirebaseApp;

const firebaseConfig = {
  ...
};

try {
  app = getApp('app');
} catch (e) {
  app = initializeApp(firebaseConfig);
}

// Initialize Firebase
const firebase = initializeApp(firebaseConfig);
// FireStore NoSQL database
export const db = getFirestore(app);

export default firebase;
  • FireStore 서비스 사용하기
import { db } from 'firebaseApp';

const onSubmit = async (e:any ) => {
  e.preventDefault();

  try{
    // firestore db에 저장
    await addDoc(collection(db,'posts'),{
      ...
    });
  } catch (e) {
    console.log(e)
  }
}

그런데..

파이어베이스 홈페이지에서 해당 프로젝트 들어가서
파이어스토어 생성 먼저 해주는게 좋다.

  • 클라우드 파이어스토어 탭에서 파이어스토어 생성
  • 규칙 탭에서 문서보기를 클릭하면 여러 보안 규칙이 나오는데, 참고해서 보안을 작성해주면 된다.

예를들면 뭐 게시글 수정할때 작성자와 로그인한사람의 uid가 같지않으면 접근이 불가능하게 해준다던가,
인증된 모든 사용자는 접근할 수 있게 해준다던가 하는 식의 보안 규칙 말이다.