# Firebase

# Firebase for web

  • Add Firebase SDK : web/index.htmlbody아래 부분에 스크립트를 추가해준다.
  • Install Firebase CLI(Firebase hosting을 위해 필요함) : npm install -g firebase-tools
    • firebase login
    • firebase init
    • firebase deploy

# Document Snapshot vs Query Snapshot

# Realtime DB vs Firestore

# Authentication

# Firestore DB

  • asia-northeast3 = 서울

firestore.rules

firestore.indexes.json

hat script should be run before every deploy? (npm ci && npm run build)

# NoSQL

  • db가 지정하는 schema가 없다.
  • field를 자유롭게 바꿀 수 있다.
  • 특정 데이터를 조회할 수 있을지에 대한 db차원의 보장이 없기 때문에 클라이언트에서 코드할때 염두에 둬야한다.
  • RDBMS처럼 join으로 자동으로 갖고 올 수 없기 때문에 데이터가 중복되게 처리하는게 효율적일 수 있다.
  • 이렇게 normalization이 깨지면 데이터 수정이 어려워진다.
  • 그렇지만 read가 굉장히 효율적으로 되고 많은 경우에 read 횟수가 create, update를 압도하기 때문에 유리할 수 있다.
  • RDBMS는 vertical scaling을 해야되는데 NoSQL은 horizontal scaling을 순식간에 할 수 있다.
  • Firestore의 query는 Shallow하다.

# Document - Collection Model

  • Documents는 JSON과 비슷하게 Fields와 Value로 이루어진다.
  • Collections는 documents의 모음이다. Collections는 documents만을 value값으로 가질수있다.
  • Document는 1메가 이하
  • Document는 Document를 포함할 수없다. sub collection을 포함할 수 있다.
  • Root에는 Collection만 있을 수 있다.

# Querying

  • 하나의 컬렉션만 조회할 수 있다.
  • 여러개를 조회하기 위해선 collection group query를 사용해야 한다. Firebase console에서 설정해야한다.

# Realtime DB

# Storage

# Hosting

# Functions

# Machine Learning