๐Ÿ“– TIL - Firebase ์„ธํŒ… ๋ฐ Firestore ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• (addDoc, getDocs)

์Š˜ยท2024๋…„ 12์›” 23์ผ

๐Ÿ“– TIL

๋ชฉ๋ก ๋ณด๊ธฐ
9/89

1. Firebase ํ”„๋กœ์ ํŠธ ์„ค์ •

  1. Firebase Console์— ์ ‘์† ํ›„ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ.
  2. ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ Firebase Firestore๋ฅผ ํ™œ์„ฑํ™”:
    • Build > Firestore Database ์„ ํƒ.
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ ํ›„ ํ…Œ์ŠคํŠธ ๋ชจ๋“œ๋กœ ์„ค์ • (์šด์˜ ์‹œ ๊ทœ์น™ ์ˆ˜์ • ํ•„์š”).
  3. Firebase SDK ์„ค์ •:
    • ํ”„๋กœ์ ํŠธ ์„ค์ • > ์•ฑ ์ถ”๊ฐ€ > Web App ์„ ํƒ.
    • ์ œ๊ณต๋œ Firebase ์„ค์ • ๊ฐ์ฒด๋ฅผ ๋ณต์‚ฌ.

2. Firebase ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐํ™”

ํ”„๋กœ์ ํŠธ์— Firebase ์„ค์น˜ ๋ฐ ์ดˆ๊ธฐํ™” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

์„ค์น˜

npm install firebase

์ดˆ๊ธฐํ™”

firebaseConfig๋Š” Firebase Console์—์„œ ๋ณต์‚ฌํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

// firebase.js
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";

const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_AUTH_DOMAIN",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_STORAGE_BUCKET",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

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

3. Firestore ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

3.1. addDoc: ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

Firestore์˜ ํŠน์ • ์ปฌ๋ ‰์…˜์— ๋ฌธ์„œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

import { collection, addDoc } from "firebase/firestore";
import { db } from "./firebase";

async function addData() {
  try {
    const docRef = await addDoc(collection(db, "users"), {
      name: "John Doe",
      age: 30,
      email: "johndoe@example.com"
    });
    console.log("Document written with ID: ", docRef.id);
  } catch (e) {
    console.error("Error adding document: ", e);
  }
}

3.2 getDocs: ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ

ํŠน์ • ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

import { collection, getDocs } from "firebase/firestore";
import { db } from "./firebase";

async function getData() {
  const querySnapshot = await getDocs(collection(db, "users"));
  querySnapshot.forEach((doc) => {
    console.log(`${doc.id} =>`, doc.data());
  });
}

4. ์ •๋ฆฌ

  • addDoc: Firestore ์ปฌ๋ ‰์…˜์— ์ƒˆ๋กœ์šด ๋ฌธ์„œ๋ฅผ ์ถ”๊ฐ€.
  • getDocs: Firestore ์ปฌ๋ ‰์…˜์˜ ๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ.
    Firebase๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ updateDoc, deleteDoc ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•˜๋‹ˆ ํ•„์š”์— ๋”ฐ๋ผ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.
profile
์ฃผ๋‹ˆ์–ด ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ์žฅ๊ธฐ ๊ธฐ๋ก๊ธฐ๋ก

0๊ฐœ์˜ ๋Œ“๊ธ€