Firebase란?
BaaS(Backend as a Service)로 데이터 관리, 분산처리 등등 서버가 하는 일을 제공해주는 서버리스 서비스다. 서버가 없는 게 아니라 누군가 구축해둔 서버에서 필요한만큼만 빌려서 쓰는 개념이다. BaaS를 사용하면 백엔드 작업을 직접 할 필요가 없기 때문에 편리하다. 강의에서 사용하는 버킷리스트의 리덕스를 Firebase에 저장하면 새로고침 해도 데이터가 사라지지 않는다.
Firebase 환경 설정
- 메인에서 프로젝트 만들기 버튼 클릭
- 프로젝트 이름을 정하고 약관 동의하기
- 프로젝트 애널리틱스 설정
FireStore란?
Firebase에서 제공하는 서비스 중 하나. NoSQL 클라우드 데이터베이스를 제공하기 때문에 데이터를 자유자재로 추가하고 삭제하고 가져다 쓸 수 있다.
FireStore의 구조
- Collection: 도큐멘트(딕셔너리{...} 데이터)의 집합
- Document: JSON 형식으로 데이터를 저장
FireStore 설정
- 생성된 프로젝트 클릭
- Cloud Forestore 추가
- 데이터베이스 만들기 클릭
- 보안규칙 테스트 모드로 설정 - 프로덕션 모드는 localhost에서 firestore로 데이터 요청이 불가능하다.
- Cloud Firestore 위치 설정 - 아무 위치로 지정해도 상관 없지만 한 번 설정하면 수정이 불가능
Firestore에 데이터 추가
- 콘솔-내 프로젝트-firestore 선택-대시보드 진입
- 컬렉션 시작
- 컬렉션 생성
- 문서ID와 리덕스 데이터에 있는 딕셔너리 형식대로 필드 값 추가
yarn add firebase
import { initializeApp } from "firebase/app";
import { getAnalytics } from "firebase/analytics";
// 개인정보 영역
const firebaseConfig = {
apiKey: "AIzaSyANb2OQLBDEZabIFoPvW1X2CY4GpL3iFys",
authDomain: "cinephile-cbf40.firebaseapp.com",
projectId: "cinephile-cbf40",
storageBucket: "cinephile-cbf40.appspot.com",
messagingSenderId: "708535078266",
appId: "1:708535078266:web:95c49c187d703a09071ac3",
measurementId: "G-ZBHFEE6RH7"
};
const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);
src/firebase.js 생성 후 SDK 붙여넣기
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getFirestore } from "firebase/firestore"
와 const db = getFirestore();
가져오기 export const db = getFirestore();
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
.
.
initializeApp(firebaseConfig);
// firebase를 호출하는 순간에 firebase를 사용할 수 있도록 변수를 없애고 기초 설정 처리
export const db = getFirestore();
import {db} from "./firebase";
useEffect
로 데이터 불러오기 const bucket = firestore.collection("filmfestival");
React.useEffect(() => {
console.log(db);
}, []);