Firebase

ยท Firebase
์ƒํ™ฉ๋กœ์ปฌ์—์„œ Firebase emulator๋กœ API๋ฅผ ํ…Œ์ŠคํŠธ์‹œ์—๋Š” ์ •์ƒ ์ž‘๋™ํ•˜๋˜ API๊ฐ€, ๋ฐฐํฌํ•˜๊ณ  ๋‚˜๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.๋‹ค๋ฅธ API๋Š” ๋ชจ๋‘ ์ •์ƒ์ž‘๋™ํ•˜๋Š”๋ฐ, monthly history ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ค๋Š” ์ด API๋งŒ ์ด์ƒํ•˜๊ฒŒ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋‹ค. ๋กœ์ปฌ์—์„œ Firebase ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ํ…Œ์ŠคํŠธํ–ˆ์„๋•Œ๋Š” ๋ฌธ์ œ์—†์ด ์ •์ƒ์ ์ธ ์‘๋‹ต์„ ์ค€๋‹ค. ์œ„๋Š” ์‹ค ๋ฐฐํฌํ™˜๊ฒฝ API ํ˜ธ์ถœ์‹œ. 500 ์—๋Ÿฌ์‘๋‹ต์„ ์ค€๋‹ค. ์ฝ”๋“œ//server/src/controllers/historiesController.tsimport { Request, Response } from "express";import { getHisotryListFromDB } from "../models/historyModel";export async func..
ยท Firebase
์ƒํ™ฉfirebase firestore db์— ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด, onDocumentWrite๋ผ๋Š” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ฑธ์–ด๋‘์–ด db์— ์ƒˆ๋กœ์šด ์ปฌ๋ ‰์…˜์„ ์ž๋™์œผ๋กœ ์ €์žฅํ•˜๊ฒŒ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์งœ๊ณ  ์žˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ, ํ…Œ์ŠคํŠธ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•˜๋Š”๊ฑฐ์ง€?๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š” ์ฝ”๋“œ๊ฐ€ ์ž˜ ์ž‘๋™๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์„๋•Œ๋งˆ๋‹ค ๋งค๋ฒˆ firebase์— ๋ฐฐํฌํ•ด์„œ ์ผ์ผ์ด ํ™•์ธํ•ด์•ผํ•˜๋Š”๊ฑธ๊นŒ? ๋ง๋„ ์•ˆ๋จ!!! ์ด๋Ÿด๋•Œ ์‹ค์ œ ์šด์˜๋˜๊ณ  ์žˆ๋Š” db์™€๋Š” ๊ด€๋ จ์—†์ด, ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ๋กœ์ปฌ์—์„œ ํ…Œ์ŠคํŠธํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” `Firebase Emulator Suite`๋ผ๋Š” ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋ผ๋Š” ๋„๊ตฌ๊ฐ€ ์žˆ๋‹ค. ๋ชฉํ‘œ๋กœ์ปฌํ™˜๊ฒฝ์—์„œ ์ž‘์„ฑํ•œ ํŠธ๋ฆฌ๊ฑฐ ์ฝ”๋“œ๊ฐ€ Firestore์— ์ž˜ ์ €์žฅ๋˜๋Š”์ง€ ์—๋ฎฌ๋ ˆ์ดํ„ฐ๋กœ ํ…Œ์ŠคํŠธํ•ด๋ณด๋ฉฐ ํ™•์ธํ•œ๋‹ค. Firebase Emulator Suite ์œผ๋กœ ๋กœ์ปฌ์—..
ยท Firebase
๋ชฉํ‘œFirebase ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  express๋กœ ๊ตฌ์ถ•ํ•œ node ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•œ๋‹ค. Cloud Firestore๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ Firebase์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด Cloud Firestore๋ผ๋Š” ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.Realtime Database๊ฐ€ ๋” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ™์•„์„œ ๋ญ˜ ์„ ํƒํ•ด์•ผํ•˜์ง€? ํ–ˆ๋Š”๋ฐ ๊ณต์‹๋ฌธ์„œ(Cloud Firestore ๋˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์— ์ž˜ ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค. ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ๊ณต์‹๋ฌธ์„œ์—์„œ๋„ Cloud Firestore๋ฅผ ๊ถŒ์žฅํ•˜๊ณ  ์žˆ๋‹ค. Firebase ์ฝ˜์†”์—์„œ ๋‚ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋ˆ„๋ฅด๊ณ  Cloud Firestore๋ฅผ ์„ ํƒํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค id์™€ ์œ„์น˜๋ฅผ ์ง€์ •ํ•ด์ค€๋‹ค. ๋ณด์•ˆ๊ทœ์น™ ํƒญ์—์„œ๋Š” ํ…Œ์ŠคํŠธ..
ยท Firebase
๋ชฉํ‘œ Firebase๋ฅผ ์‚ฌ์šฉํ•ด์„œ Node.js ํ™˜๊ฒฝ์—์„œ ๋งŒ๋“  API๋ฅผ ๋ฐฐํฌํ•œ๋‹ค. ์„ค์ •Firebase Functions๋กœ API ๋ฐฐํฌํ•˜๊ธฐ API ๋ฐฐํฌ๋ฅผ ์œ„ํ•ด์„œ๋Š” Firebase ์ œํ’ˆ ์ค‘ Functions๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. Firebase ํ”„๋กœ์ ํŠธ ๋Œ€์‰ฌ๋ณด๋“œ์—์„œ Functions ์„ ํƒ ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€์—์„œ `firebase init functions` ๋ช…๋ น์–ด๋กœ Clound Functions ํ”„๋กœ์ ํŠธ ๋ผˆ๋Œ€๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์„ ํ•œ๋‹ค.๊ธฐ์กด ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š”๊ฑฐ๋ผ์„œ existing project ์„ ํƒ ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด๋ถ€์— Functions ํด๋”๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. npm install๋กœ `firebase-functions` ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด์ค€๋‹ค. ๊ทธ๋Ÿผ package.json์— dependencies์— ์ถ”๊ฐ€๋œ๋‹ค. ..
ยท Firebase
1. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋จผ์ € ๊ตฌ๊ธ€ ๊ณ„์ •์œผ๋กœ Firebase Console์— ๊ฐ€์ž…ํ•˜๊ณ , ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค. ๋ฐฐํฌ ๊ธฐ๋ก์ด๋‚˜ Firebase๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ฝ˜์†”์—์„œ ๋Œ€์‰ฌ๋ณด๋“œ์ฒ˜๋Ÿผ ๋ณด๋ฉด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜ค๋ฅธ์ชฝ์— ์ƒ์„ฑ๋œ ๋ชจ์Šต 2. Firebase CLI ์„ค์น˜ npm์œผ๋กœ Firebase CLI ์„ค์น˜ npm install -g firebase-tools 3. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™” ๋ฐฐํฌํ•˜๋ ค๋Š” ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋กœ์ ํŠธ์˜ ๋ฃจํŠธ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ธฐ firebase init hosting ์ดˆ๊ธฐํ™” ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด, interactive ์งˆ๋ฌธ์ด ์ญ‰ ๋‚˜์˜จ๋‹ค. Project setup? Please select an option:๊ธฐ์กด ๋กœ์ปฌ ํ”„๋กœ์ ํŠธ์—๋‹ค Firebase ํ”„๋กœ์ ํŠธ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด๋‹ˆ, Use an exist..
hana1203
'Firebase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก