Firebase에서 제공하는 또 다른 데이터베이스로, 비교적 최근에 나온 기능이다.
위에서 언급한 4가지의 기능(비관계형 데이터베이스, 실시간, 오프라인 가능, 서버 없이 동작 가능)은 똑같이 제공된다.
홈페이지에서 제공하는 주요 기능 리스트이다.
유연성, 표현형 쿼리, 실시간 업데이트, 오프라인 지원, 확장형 설계
Realtime Database | Cloud Firestore |
---|---|
데이터를 하나의 큰 json 덩어리로 저장함 | 문서 컬렉션으로 저장함. |
하나의 쿼리에는 필터링/정렬 하나만 가능함 | 하나의 쿼리에 정렬과 필터링 모두 가능함. (복합적인 쿼리 가능) |
깊고 좁은 쿼리 제공 -> 결과값이 갖는 하위값 모두 반환하기 때문에 하위값에도 접근 가능함 | 얕고 넓은 쿼리 제공 -> 결과 값이 갖는 컬렉션의 문서만 반환하고, 해당 문서가 하위에 컬렉션을 갖고 있더라도 반환 안함 |
데이터 세트의 크기가 커질수록 쿼리 성능 떨어짐 -> 깊고 좁은 쿼리를 제공하기 때문에 데이터 크기에 영향받음 | 데이터 세트의 크기는 쿼리 성능에 직접적인 영향 없음 -> 하지만 요청 쿼리 결과에 따라 쿼리 성능이 영향 받을 수는 있음 |
최대한 데이터 평면화 필요함 -> 하위값도 모두 반환하기 때문에 최대한 평면적인 구조 필요함 | 하위값은 반환하지 않기 때문에 평면적인 구조는 영향이 적음 |
앱의 특성에 따라 권장하는 데이터베이스가 다르다.
각 데이터베이스별로 적합한 앱의 특성은 아래와 같다.
고급 쿼리, 정렬, 트랜젝션
대용량 데이터가 자주 읽힘
구조화된 컬렉션
단일 데이터베이스
권장 데이터베이스의 체크리스트를 통해서 확인 할 수 있다.