Firebase - boostcampwm-2024/and04-Nature-Album GitHub Wiki

νŒŒμ΄μ–΄λ² μ΄μŠ€

FireStore | Firebase 곡식 λ¬Έμ„œ

FirebaseλŠ” NoSQL!

Q. NoSQL?

  • Not Only SQL의 μ•½μ–΄
  • RDBMSκ°€ ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ ν™˜κ²½μ— λ§žλŠ” 방식이라면 NoSQL은 ν΄λΌμš°λ“œ ν™˜κ²½μ— λ§žλŠ” 방식
  • μ™œ NoSQL이 λ“±μž₯ν–ˆμ„ 까?
    • 빅데이터λ₯Ό λ‹€λ£° λ•Œ, RDBMS의 μ„±λŠ₯μœΌλ‘œλŠ” νŠΈλž˜ν”½μ„ 닀루기 μ–΄λ €μ› μŒ.
    • μˆ˜λ§Žμ€ 데이터λ₯Ό λ‹€λ£¨κΈ°μ—λŠ” RDBMS의 처리 방식은 λ³΅μž‘ν•¨(Join, νŠΈλžœμž­μ…˜ 처리)
      • RDBMSλŠ” 수직적 ν™•μž₯ λ°©μ‹μž„ (μ„œλ²„μ˜ ν•˜λ“œμ›¨μ–΄ μ„±λŠ₯을 λ†’μ΄λŠ” 방식)
      • NoSQL은 μˆ˜ν‰μ  ν™•μž₯ λ°©μ‹μœΌλ‘œ μ„œλ²„μ˜ 수λ₯Ό 늘리면 그만!
  • 데이터가 Key-Value
    • 즉, μˆ˜λ§Žμ€ 데이터λ₯Ό νƒμƒ‰ν•˜λŠ”λ° 도움이 λœλ‹€!
    • 막 μ‘°μΈν•˜κ³ ~ μ°Έμ‘°ν…Œμ΄λΈ” ν™•μΈν•˜κ³ ~~ μ–΄νœ΄

Firestore DB 데이터 μ €μž₯ 방식

  • 각 Documentμ—λŠ” ν‚€-κ°’ 쌍으둜 데이터가 μ €μž₯λ˜μ–΄ μžˆλ‹€.
  • λͺ¨λ“  DocumentλŠ” Collection에 μ €μž₯λ˜μ–΄ μžˆμ–΄μ•Ό ν•œλ‹€.
μ˜ˆμ‹œ 1
↓ (feat ChatGPT)

```
/users (μ»¬λ ‰μ…˜)
    β”œβ”€β”€ userId_1 (λ¬Έμ„œ)
    β”‚      β”œβ”€β”€ name: "Alice"
    β”‚      β”œβ”€β”€ email: "[email protected]"
    β”‚      β”œβ”€β”€ profilePicture: "url_to_profile_picture"
    β”‚      β”œβ”€β”€ posts (ν•˜μœ„ μ»¬λ ‰μ…˜)
    β”‚           β”œβ”€β”€ postId_1 (λ¬Έμ„œ)
    β”‚           β”‚      β”œβ”€β”€ content: "Hello, world!"
    β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-03T12:34:56Z"
    β”‚           β”‚      β”œβ”€β”€ likes: 5
    β”‚           β”‚      β”œβ”€β”€ comments (ν•˜μœ„ μ»¬λ ‰μ…˜)
    β”‚           β”‚           β”œβ”€β”€ commentId_1 (λ¬Έμ„œ)
    β”‚           β”‚           β”‚      β”œβ”€β”€ userId: "userId_2"
    β”‚           β”‚           β”‚      β”œβ”€β”€ content: "Nice post!"
    β”‚           β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-03T12:35:10Z"
    β”‚           β”‚           β”œβ”€β”€ commentId_2 (λ¬Έμ„œ)
    β”‚           β”‚           β”‚      β”œβ”€β”€ userId: "userId_3"
    β”‚           β”‚           β”‚      β”œβ”€β”€ content: "I agree!"
    β”‚           β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-03T12:36:00Z"
    β”‚           β”œβ”€β”€ postId_2 (λ¬Έμ„œ)
    β”‚           β”‚      β”œβ”€β”€ content: "Just had a great lunch!"
    β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-03T12:45:00Z"
    β”‚           β”‚      β”œβ”€β”€ likes: 3
    β”‚           β”‚      β”œβ”€β”€ comments (ν•˜μœ„ μ»¬λ ‰μ…˜)
    β”‚           β”‚           β”œβ”€β”€ commentId_3 (λ¬Έμ„œ)
    β”‚           β”‚           β”‚      β”œβ”€β”€ userId: "userId_4"
    β”‚           β”‚           β”‚      β”œβ”€β”€ content: "Yum!"
    β”‚           β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-03T12:46:00Z"
    β”‚           
    β”œβ”€β”€ userId_2 (λ¬Έμ„œ)
    β”‚      β”œβ”€β”€ name: "Bob"
    β”‚      β”œβ”€β”€ email: "[email protected]"
    β”‚      β”œβ”€β”€ profilePicture: "url_to_profile_picture"
    β”‚      β”œβ”€β”€ posts (ν•˜μœ„ μ»¬λ ‰μ…˜)
    β”‚           β”œβ”€β”€ postId_3 (λ¬Έμ„œ)
    β”‚           β”‚      β”œβ”€β”€ content: "Excited for the weekend!"
    β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-02T10:00:00Z"
    β”‚           β”‚      β”œβ”€β”€ likes: 10
    β”‚           β”‚      β”œβ”€β”€ comments (ν•˜μœ„ μ»¬λ ‰μ…˜)
    β”‚           β”‚           β”œβ”€β”€ commentId_4 (λ¬Έμ„œ)
    β”‚           β”‚           β”‚      β”œβ”€β”€ userId: "userId_1"
    β”‚           β”‚           β”‚      β”œβ”€β”€ content: "Me too!"
    β”‚           β”‚           β”‚      β”œβ”€β”€ createdAt: "2024-11-02T10:05:00Z"
```
1

곡식 λ¬Έμ„œμ— μžμ„Έν•˜κ²Œ λ‚˜μ™€μžˆλ‹€! ν•œλ²ˆμ”© 읽어보면 쒋을 것 κ°™λ‹€.

FirebaseDatabase의 μΈμŠ€ν„΄μŠ€λ₯Ό κ°€μ Έμ™€μ„œ Collection, Document μ΄λ¦„μœΌλ‘œ 값듀을 κ°€μ Έμ˜¬ 수 μžˆλŠ” 것 κ°™λ‹€.

νŒŒμ΄μ–΄λ² μ΄μŠ€ 둜그인

1

νŒŒμ΄μ–΄λ² μ΄μŠ€ 인증과 μ—°λ™λœ μ„œλΉ„μŠ€ λͺ©λ‘, 각 λ¬Έμ„œμ— κ°€μ΄λ“œ ν¬ν•¨λ˜μ–΄μžˆμŒ.

넀이버, μΉ΄μΉ΄μ˜€λŠ” x

λΉ„νšŒμ›? 읡λͺ… 둜그인??

읡λͺ…인증

μž„μ‹œ νšŒμ›λ„ νŒŒμ΄μ–΄λ² μ΄μŠ€μ˜ FireStoreλ“± 둜그인 μœ μ €μ™€ λ™μΌν•˜κ²Œ 관리할 수 있음

μž„μ‹œνšŒμ›μœΌλ‘œ ν™œλ™ν•˜λ‹€ μ‹ κ·œ 계정을 생성해 μž‘μ—…μ„ μ΄μ–΄μ„œ ν•  수 있음

Crashlytics

⚠️ **GitHub.com Fallback** ⚠️