Firestore
17 Sep 2023 | firebaseFireStore란?
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가 같지않으면 접근이 불가능하게 해준다던가,
인증된 모든 사용자는 접근할 수 있게 해준다던가 하는 식의 보안 규칙 말이다.