//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()
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"
});
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);
덮어씌우지 않고 특정값만 변경 ( updateDoc, doc )
import { db } from './firebase'
import { doc, updateDoc } from "firebase/firestore";
await updateDoc(doc(db, "cities", "LA"), {
name: "Busan",
});
특정 id값을 삭제한다
import { db } from './firebase'
import { doc, deleteDoc } from "firebase/firestore";
await deleteDoc(doc(db, "cities", id));