# Firebase
# Firebase for web
- Add Firebase SDK :
web/index.html
의body
아래 부분에 스크립트를 추가해준다. - 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에서 설정해야한다.