그래서 나는 이 질문에 관한 전체 블로그 게시물을 썼으며 더 완전한 답을 얻으 려면 그것을 확인하십시오 (또는 공식 문서 ).
그러나 빠른 요약을 원한다면 다음과 같습니다.
보다 나은 쿼리 및 구조화 된 데이터 -실시간 데이터베이스는 거대한 JSON 트리이지만 Cloud Firestore는 좀 더 구조화되어 있습니다. 모든 데이터는 문서 (기본적으로 키-값 저장소)와 컬렉션 (문서 컬렉션)으로 구성됩니다. 문서는 종종 다른 문서를 포함하거나 자체적으로 다른 문서를 포함 할 수있는 하위 콜렉션을 가리 킵니다.
이 구조화 된 데이터는 두 가지 방법으로 도움이됩니다. 먼저 모든 쿼리가 얕기 때문에 모든 데이터를 가져 오지 않고도 문서를 요청할 수 있습니다. 즉, 데이터베이스를 얕게 유지하는 것에 대해 걱정할 필요없이 데이터를 계층 적으로 저장하여보다 의미있는 방식으로 유지할 수 있습니다. 둘째, 더 강력한 쿼리가 있습니다. 예를 들어, 데이터베이스의 다른 부분에서 데이터를 결합하고 비정규 화하는 "콤보"필드를 만들지 않고도 여러 필드를 쿼리 할 수 있습니다. 경우에 따라 Cloud Firestore는 이러한 쿼리를 직접 실행하고 다른 경우에는 자동으로 인덱스를 생성하고 유지 관리합니다.
확장하도록 설계 -Cloud Firestore는 실시간 데이터베이스보다 확장 성이 뛰어납니다. 쿼리는 데이터 세트가 아닌 결과 세트의 크기에 따라 조정됩니다. 따라서 데이터 세트의 크기에 관계없이 검색 속도가 빠릅니다.
손쉬운 데이터 가져 오기 -실시간 데이터베이스와 마찬가지로 Cloud Firestore에서 리스너를 설정하여 변경 사항을 실시간으로 스트리밍 할 수 있습니다. 그러나 이러한 종류의 동작을 원하지 않고 단순한 "내 데이터 가져 오기"호출을 원할 경우 Cloud Firestore에도 해당 기능이 있으며 기본 사용 사례로 기본 제공됩니다. ( once
실시간 데이터베이스 의 통화 보다 훨씬 낫습니다 )
다중 지역 지원 -기본적으로 데이터가 여러 데이터 센터에서 한 번에 공유되므로 안정성이 향상됩니다. 그러나 여전히 일관성이 뛰어나므로 항상 쿼리를 수행하고 최신 버전의 데이터를 얻을 수 있습니다.
다양한 요금 모델 -실시간 데이터베이스는 주로 스토리지 또는 네트워크 대역폭을 기준으로 요금을 청구하지만 Cloud Firestore는 주로 수행 한 작업 수를 기준으로 요금을 청구 합니다. 이게 더 나을까요? 앱에 따라 다릅니다.
뉴스 앱, 턴 기반 멀티 플레이어 게임 또는 자신의 스택 오버플로 버전과 같은 기능을 제공하기 위해 Cloud Firestore는 아마도 가격 측면에서 유리한 것으로 보일 것입니다. 여러 사람에게 1 초에 여러 업데이트를 보내는 실시간 그룹 드로잉 앱의 경우 실시간 데이터베이스보다 비용이 많이 듭니다.
왜 실시간 데이터베이스를 사용하고 싶을까요? 몇 가지 이유가 있습니다. 1) 앞서 언급 한 "빈번한 업데이트가 많은 앱의 경우 아마도 저렴할 것입니다." 실시간 느낌을 위해 대기 시간이 안정적으로 낮은 것이 필요한 경우 실시간 데이터베이스가 더 잘 작동 할 수 있습니다.
대부분의 새로운 앱의 경우 Cloud Firestore를 확인하는 것이 좋습니다. 그러나 이미 실시간 데이터베이스에있는 앱이 있다면 강력한 이유가 없다면 전환을 위해 전환하는 것이 좋습니다.
희망이 도움이됩니다!