Firebase 설치
yarn add firebase
React 앱에서 Firebase 초기화
import firebase from 'firebase/app'
const firebaseConfig = {
apiKey: process.env.REACT_APP_API_KEY,
authDomain: process.env.REACT_APP_AUTH_DOMAIN,
projectId: process.env.REACT_APP_PROJECT_ID,
storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGING_SENTER_ID,
appId: process.env.REACT_APP_ID,
};
firebase.initializeApp(firebaseConfig);
React 앱에서 Firebase 사용
import 'firebase/auth';
import 'firebase/firestore';
const auth = firebase.auth();
const db = firebase.firestore();
Firebase Authentication 서비스 불러오기
onAuthStateChanged 메서드
Firebase Authentication 서비스에서 제공하는 메서드로 인증 상태가 변경될 때마다 호출되는 리스너 설정할 수 있다.(로그인, 로그아웃)
사용자 객체를 인자로 받는 콜백 함수를 등록해서 로그인 상태일 때는 사용자의 정보를, 아니라면 null을 리턴하게 한다.
https://github.com/yejify/blog-app/commit/354fed557f453931ee075499a341bcb0fb08e50c
store에서 문서 가져오기
import { doc, getDoc } from "firebase/firestore";
const docRef = doc(db, "cities", "SF");
const docSnap = await getDoc(docRef);
if (docSnap.exists()) {
console.log("Document data:", docSnap.data());
} else {
// docSnap.data() will be undefined in this case
console.log("No such document!");
}
https://firebase.google.com/docs/firestore/query-data/get-data?hl=ko
문서 업데이트 하기
import { doc, updateDoc } from "firebase/firestore";
const washingtonRef = doc(db, "cities", "DC");
// Set the "capital" field of the city 'DC'
await updateDoc(washingtonRef, {
capital: true
});
https://firebase.google.com/docs/firestore/manage-data/add-data?hl=ko
문서 삭제하기
import { doc, deleteDoc } from "firebase/firestore";
await deleteDoc(doc(db, "cities", "DC"));
https://firebase.google.com/docs/firestore/manage-data/delete-data?hl=ko
쿼리 추가하기
// Create a reference to the cities collection
import { collection, query, where } from "firebase/firestore";
const citiesRef = collection(db, "cities");
// Create a query against the collection.
const q = query(citiesRef, where("state", "==", "CA"));
쿼리를 설정하면 색인을 수동으로 추가해주어야 함
https://firebase.google.com/docs/firestore/query-data/queries?hl=ko
'2024 > TIL' 카테고리의 다른 글
[TanStackQuery] ReactQuery 개념 정리 (1) | 2024.10.20 |
---|---|
[AWS TechCamp] AWS 서버리스로 서버 고민 없이 웹 애플리케이션 구축하기 (2) | 2024.09.04 |
[CSS] BEM(Block, Element, Modifier) 모델 (0) | 2024.08.29 |
[독서] 선물받은 「나는 네이버 프런트엔드 개발자입니다」 책 읽기 (0) | 2024.08.23 |
[cs] Observer Pattern 왜 알아야 할까? (1) | 2024.07.11 |