firebase CRUD

형진·2022년 9월 1일
1
//firebase.js

import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getAuth } from "firebase/auth";

const firebaseConfig = {
    ...
};

const app = initializeApp(firebaseConfig);
export const db = getFirestore(app)
export const auth = getAuth()

Create

collection 추가 ( setDoc, doc)

  • 하위 문서 이름이 비어있으면 오류남
  • collection and 하위 문서 이름이 중복될때는 덮어씌어짐
//app.js
import { db } from './firebase'
import { doc, setDoc } from "firebase/firestore";

    await setDoc(doc(db, "collection 이름","하위 문서 이름"), {
      name: "Los Angele",
      state: "C",
      country: "US"
    });

    await setDoc(doc(db, "cities","LA"), {
      name: "Los Angele",
      state: "C",
      country: "US"
    });

하위 문서 추가 ( addDoc, collection )

  • 하위문서 이름이 상관없을때 사용
//app.js
import { db } from './firebase'
import { addDoc, collection } from "firebase/firestore";

    await addDoc(collection(db, "cities"), {
      name: "Los Angele",
      state: "C",
      country: "US"
    });

Read

collection에 있는 값들을 전부 불러온다 ( getDocs, collection )

  • forEach를 써서 자료를 하나하나 불러와야 한다
import { db } from './firebase'
import { getDocs, collection } from "firebase/firestore";
      let list = [];
      try {
        const querySnapshot = await getDocs(collection(db, "users"));
        querySnapshot.forEach((doc) => {
          list.push({ id: doc.id, ...doc.data() });
        });
        setData(list);

Update

덮어씌우지 않고 특정값만 변경 ( updateDoc, doc )

import { db } from './firebase'
import { doc, updateDoc } from "firebase/firestore";

    await updateDoc(doc(db, "cities", "LA"), {
      name: "Busan",
    });

Delete

특정 id값을 삭제한다

import { db } from './firebase'
import { doc, deleteDoc } from "firebase/firestore";

 await deleteDoc(doc(db, "cities", id));
profile
느낀대로 적자

0개의 댓글