- Published on
TIL๐ ์ฑ๊ฐ๋ฐ ์คํฐ๋ - 4 week
- Authors
- Name
- Haneul
TIL๐ ์ฑ๊ฐ๋ฐ ์คํฐ๋ - 4 week
Firebase ๐ฉ๐ปโ๐ป
ํ์ด์ด๋ฒ ์ด์ค๋ ๊ตฌ๊ธ์์ ๋ง๋ ์๋ฒ๋ฆฌ์ค ์๋น์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ด๋ฏธ์ง ํ์ผ ์๋ฒ
- ํธ์ ์๋ ๊ธฐ๋ฅ
- ๋ก๊ทธ์ธ ์ธ์ฆ ๊ธฐ๋ฅ
Serverless
- ๋ฐ์ดํฐ ์์ฑ
- ๋ฐ์ดํฐ ์กฐํ
- ๋ฐ์ดํฐ ์ญ์ /์์ ๋ฑ์ ์ ๊ณตํด์ฃผ๋ ์๋น์ค๋ค์ด ์กด์ฌํฉ๋๋ค.
ํ์ด์ด๋ฒ ์ด์ค ์ค์น
npm install firebase
yarn add firebase
expo install firebase
ํ์ด์ด๋ฒ ์ด์ค config ์ค์
์ฒ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋์ด ๋์ง ์์ ํ์ธํด๋ดค๋๋ ์ง์ญ ์ค์ ์ด ๋ง์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ด databaseURL์ ๋ฐ๋ก ์ค์ ํด์ฃผ์๋ค.
// ์ฌ์ฉํ ํ์ด์ด๋ฒ ์ด์ค ์๋น์ค ์ฃผ์์ ํด์ ํฉ๋๋ค
//import "firebase/compat/auth";
import "firebase/compat/database";
//import "firebase/compat/firestore";
//import "firebase/compat/functions";
import "firebase/compat/storage";
import firebase from "firebase/compat/app";
// Initialize Firebase
//ํ์ด์ด๋ฒ ์ด์ค ์ฌ์ดํธ์์ ๋ดค๋ ์ฐ๊ฒฐ์ ๋ณด๋ฅผ ์ฌ๊ธฐ์ ๊ฐ์ ธ์ต๋๋ค
const firebaseConfig = {
apiKey: "",
authDomain: "sparta-react-native-11669.firebaseapp.com",
projectId: "sparta-react-native-11669",
storageBucket: "sparta-react-native-11669.appspot.com",
messagingSenderId: "",
appId: "",
measurementId: "",
databaseURL:
" https://sparta-react-native-11669-default-rtdb.asia-southeast1.firebasedatabase.app",
};
//์ฌ์ฉ ๋ฐฉ๋ฒ์
๋๋ค.
//ํ์ด์ด๋ฒ ์ด์ค ์ฐ๊ฒฐ์ ํน์ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ ์ฝ๋๋ก ์์๋๋ฉด ๋ฉ๋๋ค.
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
}
export const firebase_db = firebase.database();
Storage
๋ฉ๋ฆฌ ์๋ ํ์ผ ์ ์ฅ์์ ์ด๋ฏธ์ง ๋ฐ ์ฌ์ฉ ํ ํ์ผ์ ์ฌ๋ ค๋๊ณ , ํ์ํ ๋๋ง๋ค ๊บผ๋ด ์ฐ๋ ์ฉ๋๋ก ์ฌ์ฉ
const ref = firebase_storage.ref("general/main.png");
const url = await ref.getDownloadURL();
Realtime Database
๋ฐ์ดํฐ๋ฒ ์ด์ค API
์๋์ ๊ฐ์ด config์ firebase_db๋ฅผ ์ฐ๊ฒฐํ์ฌ "/tip" ์ ref๋ก ๋ฃ๊ณ snapshot.value๋ก ๊ฐ์ ๊ฐ์ ธ์จ๋ค.
์ฌ์ฉ๋ฐฉ๋ฒ์ ๊ณต์๋ฌธ์์์ ํ์ธ!!
import { firebase_db } from "../firebaseConfig";
firebase_db
.ref("/tip")
.once("value")
.then((snapshot) => {
let tip = snapshot.val();
console.log("MainPage > ํ์ด์ด๋ฒ ์ด์ค์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์์ต๋๋ค!!", tip);
setState(tip);
setCateState(tip);
getLocation();
setReady(false);
});
TIL โ
ํ์ด์ด๋ฒ ์ด์ค์ ์คํ ๋ฆฌ์ง, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฃผ๋ ํ์ต ๋ด์ฉ์ด์๊ณ , weather API ์ ์ฉ๋ ํด๋ณด์๋ค.
expo-constants์ installationId ๊ฐ deprecated ๋์ด uuid๋ฅผ ์ฌ์ฉํ์ฌ ์์ด๋ ์ค์ ์ ํ์๊ณ , ์ถํ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ด ํ์ํด๋ณด์ธ๋ค.
์ฐธ๊ณ : ์คํ๋ฅดํ ์ฝ๋ฉํด๋ฝ, React Naitve, Firebase,