Firebase - ์ด๋ฉ”์ผ & ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ๊ณผ ์†Œ์…œ ๋กœ๊ทธ์ธ(Github)

2025. 6. 9. 21:36ยท๐Ÿ”ฅ Firebase

Firebase

 

โœ… Setup


1. Firebase ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

 

2. Firebase ์„ค์น˜

npm install firebase

 

3. ์ฝ˜์†”์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋ฅผ firebase.ts๋ฅผ ์ƒ์„ฑํ•ด ์•ˆ์— ๋„ฃ์–ด์ค€๋‹ค.

 

โœ… ์ด๋ฉ”์ผ & ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ


Firebase ์ฝ˜์†”์˜ Authentication์—์„œ ์ด๋ฉ”์ผ & ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•œ ๋‹ค์Œ, ์ฝ”๋“œ์—์„œ initializeํ•œ๋‹ค.

getAuth(app)

import { getAuth } from "firebase/auth";
export const auth = getAuth(app);

 

createUserWithEmailAndPassword(auth, email, password)

ํšŒ์› ์ •๋ณด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ์‹œ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๊ณ  ๋กœ๊ทธ์ธ ์‹œํ‚จ๋‹ค.

UserCredential์„ returnํ•œ๋‹ค. (operationType, providerId, user ๋“ฑ์˜ ์†์„ฑ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค.)

    try {
      const credentials = await createUserWithEmailAndPassword(
        auth,
        email,
        password
      );
      await updateProfile(credentials.user, {
        displayName: name,
      });
      navigate("/");
    } catch (error) {
      if (error instanceof FirebaseError) {
        setError("error", {
          message: error.message,
        });
      }
    }

 

signInWithEmailAndPassword(auth, email, password)

ํšŒ์› ์ •๋ณด๊ฐ€ ์กด์žฌํ•  ์‹œ ๋กœ๊ทธ์ธ ์‹œํ‚จ๋‹ค.

    try {
      await signInWithEmailAndPassword(auth, email, password);
      navigate("/");
    } catch (error) {
      if (error instanceof FirebaseError) {
        setError("error", {
          message: error.message,
        });
      }
    }

 

auth.signOut();

๋กœ๊ทธ์•„์›ƒ ์‹œํ‚จ๋‹ค.

  const onLogOut = async () => {
    const ok = confirm("Are you sure you want to log out?");
    if (ok) {
      await auth.signOut();
      navigate("/login");
    }
  };

 

โœ… Github ์†Œ์…œ ๋กœ๊ทธ์ธ


Firebase์˜ console์—์„œ Github ๋กœ๊ทธ์ธ์„ ํ™œ์„ฑํ™” ์‹œํ‚จ๋‹ค.

(Github OAuth ์„ค์ •์„ ํ•˜๊ณ  client ID์™€ client secret์„ ๋„ฃ์–ด์ค€๋‹ค.)

new GithubAuthProvider()

Github ๋กœ๊ทธ์ธ ์ธ์ฆ์— ํ•„์š”ํ•œ provider๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

(Github OAuth ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํด๋ž˜์Šค)

 

๋กœ๊ทธ์ธ์„ ํ•  ๋•Œ 2๊ฐœ์˜ ์˜ต์…˜์ด ์žˆ๋‹ค.

1. signInWithPopup

2. signInWithRedirect

 

๋‘ ๋ฉ”์„œ๋“œ ๋ชจ๋‘ auth์™€ provider๋ฅผ arg๋กœ ๋ฐ›๋Š”๋‹ค.

  const onClick = async () => {
    try {
      const provider = new GithubAuthProvider();
      await signInWithPopup(auth, provider);
      navigate("/");
    } catch (error) {
      console.log(error);
    }
  };

 

'๐Ÿ”ฅ Firebase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Firebase - React Native iOS Setup  (0) 2026.02.26
Firebase - Rules  (0) 2025.06.20
Firebase - Hosting  (0) 2025.06.18
Firebase - query(), getDocs(), onSnapshot()์„ ์‚ฌ์šฉํ•ด Firestore DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ  (0) 2025.06.16
Firebase - Firestore Database์™€ Storage์— document์™€ ์‚ฌ์ง„ ์—…๋กœ๋“œํ•˜๊ธฐ  (0) 2025.06.12
'๐Ÿ”ฅ Firebase' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Firebase - Rules
  • Firebase - Hosting
  • Firebase - query(), getDocs(), onSnapshot()์„ ์‚ฌ์šฉํ•ด Firestore DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ
  • Firebase - Firestore Database์™€ Storage์— document์™€ ์‚ฌ์ง„ ์—…๋กœ๋“œํ•˜๊ธฐ
j2yonghwa
j2yonghwa
Trying to be a fullstack developer ๐Ÿš€
  • j2yonghwa
    j2yonghwa
    j2yonghwa
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (156)
      • โฐ Daily WakaTime (1)
      • ๐Ÿ–๏ธ ๋…ธ๋งˆ๋“œ์ฝ”๋” (2)
      • ๐Ÿบ Dev Setup (3)
      • ๐Ÿ”ญ Tech Info (1)
      • ๐Ÿšซ Error (1)
      • ๐Ÿ“‚ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (23)
      • ♣๏ธ Next.js 14 (10)
      • ♠๏ธ Next.js 12 (20)
      • ๐Ÿ›ธ React Native (12)
      • ๐Ÿฆ‹ TypeScript (1)
      • ๐Ÿ Python (2)
      • ๐ŸŒŠ TailwindCSS (4)
      • ๐Ÿงฉ SQL (25)
      • ๐Ÿ’Ž Prisma (5)
      • ๐ŸŒฑ MongoDB (4)
      • ๐ŸŽฏ Redis (1)
      • ๐Ÿงฌ GraphQL (2)
      • ๐Ÿ”ฅ Firebase (7)
      • ๐Ÿ’ธ Third-Party Services (2)
      • ๐Ÿ•ธ๏ธ Web (1)
      • ๐Ÿ† ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (23)
      • ๐Ÿ“™ ๋ชจ๋”ฅ๋‹ค (5)
      • ๐Ÿ“— ์ฝ”ํ…Œ ํ•ฉ๊ฒฉ์ž ๋˜๊ธฐ -JS- (0)
      • ๐Ÿ“˜ ํด๋ฆฐ์ฝ”๋“œ (0)
      • ๐Ÿฏ ๊ฟ€ํŒ ๐Ÿ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • ๊นƒํ—™
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    tailwindcss
    MySQL
    mongoDB
    0๋ ˆ๋ฒจ
    next.js 12
    PostgreSQL
    Prisma
    Firebase
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    Next.js
    react router
    dev setup
    next.js 14
    API
    SQL
    ๋ชจ๋”ฅ๋‹ค
    Python
    React Native
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
j2yonghwa
Firebase - ์ด๋ฉ”์ผ & ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ๊ณผ ์†Œ์…œ ๋กœ๊ทธ์ธ(Github)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”