Cloud Firestore와 Firebase 실시간 데이터베이스의 차이점은 무엇입니까?


252

Google은 새로운 앱용 문서 데이터베이스 인 Cloud Firestore를 출시했습니다.

설명서를 읽었지만 Firestore와 Firebase DB 사이에는 많은 차이점이 없습니다.

요점은 Firestore는 문서와 컬렉션을 사용하여 JSON 기반의 전통적인 noSQL 데이터베이스 인 Firebase에 비해 쿼리를 쉽게 사용할 수 있다는 것입니다.

차이점이나 사용법 또는 Firestore가 Firebase DB를 대체했는지 여부에 대해 조금 더 알고 싶습니다.


1
Firestore 실시간 읽기 속도가 빨라지고 Firebase 실시간 데이터베이스 쓰기 속도가 빨라집니다.
DragonFire

답변:


380

그래서 나는 이 질문에 관한 전체 블로그 게시물을 썼으며 더 완전한 답을 얻으 려면 그것을 확인하십시오 (또는 공식 문서 ).

그러나 빠른 요약을 원한다면 다음과 같습니다.

보다 나은 쿼리 및 구조화 된 데이터 -실시간 데이터베이스는 거대한 JSON 트리이지만 Cloud Firestore는 좀 더 구조화되어 있습니다. 모든 데이터는 문서 (기본적으로 키-값 저장소)와 컬렉션 (문서 컬렉션)으로 구성됩니다. 문서는 종종 다른 문서를 포함하거나 자체적으로 다른 문서를 포함 할 수있는 하위 콜렉션을 가리 킵니다.

이 구조화 된 데이터는 두 가지 방법으로 도움이됩니다. 먼저 모든 쿼리가 얕기 때문에 모든 데이터를 가져 오지 않고도 문서를 요청할 수 있습니다. 즉, 데이터베이스를 얕게 유지하는 것에 대해 걱정할 필요없이 데이터를 계층 적으로 저장하여보다 의미있는 방식으로 유지할 수 있습니다. 둘째, 더 강력한 쿼리가 있습니다. 예를 들어, 데이터베이스의 다른 부분에서 데이터를 결합하고 비정규 화하는 "콤보"필드를 만들지 않고도 여러 필드를 쿼리 할 수 ​​있습니다. 경우에 따라 Cloud Firestore는 이러한 쿼리를 직접 실행하고 다른 경우에는 자동으로 인덱스를 생성하고 유지 관리합니다.

확장하도록 설계 -Cloud Firestore는 실시간 데이터베이스보다 확장 성이 뛰어납니다. 쿼리는 데이터 세트가 아닌 결과 세트의 크기에 따라 조정됩니다. 따라서 데이터 세트의 크기에 관계없이 검색 속도가 빠릅니다.

손쉬운 데이터 가져 오기 -실시간 데이터베이스와 마찬가지로 Cloud Firestore에서 리스너를 설정하여 변경 사항을 실시간으로 스트리밍 할 수 있습니다. 그러나 이러한 종류의 동작을 원하지 않고 단순한 "내 데이터 가져 오기"호출을 원할 경우 Cloud Firestore에도 해당 기능이 있으며 기본 사용 사례로 기본 제공됩니다. ( once실시간 데이터베이스 의 통화 보다 훨씬 낫습니다 )

다중 지역 지원 -기본적으로 데이터가 여러 데이터 센터에서 한 번에 공유되므로 안정성이 향상됩니다. 그러나 여전히 일관성이 뛰어나므로 항상 쿼리를 수행하고 최신 버전의 데이터를 얻을 수 있습니다.

다양한 요금 모델 -실시간 데이터베이스는 주로 스토리지 또는 네트워크 대역폭을 기준으로 요금을 청구하지만 Cloud Firestore는 주로 수행 한 작업 수를 기준으로 요금을 청구 합니다. 이게 더 나을까요? 앱에 따라 다릅니다.

뉴스 앱, 턴 기반 멀티 플레이어 게임 또는 자신의 스택 오버플로 버전과 같은 기능을 제공하기 위해 Cloud Firestore는 아마도 가격 측면에서 유리한 것으로 보일 것입니다. 여러 사람에게 1 초에 여러 업데이트를 보내는 실시간 그룹 드로잉 앱의 경우 실시간 데이터베이스보다 비용이 많이 듭니다.

왜 실시간 데이터베이스를 사용하고 싶을까요? 몇 가지 이유가 있습니다. 1) 앞서 언급 한 "빈번한 업데이트가 많은 앱의 경우 아마도 저렴할 것입니다." 실시간 느낌을 위해 대기 시간이 안정적으로 낮은 것이 필요한 경우 실시간 데이터베이스가 더 잘 작동 할 수 있습니다.

대부분의 새로운 앱의 경우 Cloud Firestore를 확인하는 것이 좋습니다. 그러나 이미 실시간 데이터베이스에있는 앱이 있다면 강력한 이유가 없다면 전환을 위해 전환하는 것이 좋습니다.

희망이 도움이됩니다!


2
토드 너무 감사합니다! 공지 사항을 보았지만이 소식은 보지 못했습니다! 나는 Firestore와 완전히 사랑하고 있습니다. 슬프게도 이제이 xD로 포장 된 전체 RxJava를 다시 작성해야합니다.
Francisco Durdin Garcia 17

1
Google Cloud Datastore는 어떤 방식으로 적합합니까? Naively Cloud Firestore와 많은 중복이있는 것 같습니다. @ToddKerpelman
Jon G

2
Cloud Datastore와 공통점이 많습니다. 가장 큰 차이점은 Firebase와의 통합이므로 실시간 동기화 기능뿐만 아니라 기본 오프라인 모드와 함께 모바일 및 웹 SDK에 액세스 할 수 있다는 것입니다. Cloud Datastore는 App Engine에서 자체 웹 사이트를 실행하거나 Compute / Container Engine을 통해 자신의 앱 연결을 관리하는 대규모 서버 측 개발에 적합합니다.
Todd Kerpelman

2
"강한 일관성"은 실제로 무엇을 의미합니까? CAP 정리 는 분산 및 사용 가능한 환경에서 "최신 버전의 데이터를 받고 있다는 것을 확신 할 수 없음 "을 나타냅니다 . 일관성, 가용성, 파티션 허용 오차 => 선택 2
AjahnCharles

1
@ToddKerpelman Cloud Firestore / Cloud Datastore 비교를 할 수있는 기회가있을 것입니다. 둘은 끔찍하게 비슷해 보인다.
TheAddonDepot

63

https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0 에서 전체 기사를 읽을 수 있습니다.

Firebase Realtime databaseJSON 트리로 구성되지만 Cloud Firestore문서 (키-값 쌍의 집합) 및 컬렉션 (문서 모음) 형식으로 데이터에 저장됩니다.

더 많은 구조 데이터

실시간 데이터베이스는 JSON 트리에 데이터를 저장했지만 Cloud firestore는 JSON과 매우 유사한 문서에 데이터를 저장했습니다. 여기에 이미지 설명을 입력하십시오

Cloud FireStore에서 문서는 하위 컬렉션과 중첩 된 객체 (위의 그림에서 'phone'과 같은)를 묶을 수 있으며, 둘 다 문자열 (예 : 'name', 'email'등)과 같은 기본 필드 또는 위와 같은 복잡한 객체를 포함 할 수 있습니다. 기울기.

더 나은 쿼리

  • 실시간 데이터베이스에서는 속성을 정렬 및 필터링하지 않고 단일 쿼리에서만 속성을 정렬하거나 필터링 할 수 있지만 Cloud FireStore에서는 단일 쿼리에서 필터를 연결하고 속성에 대한 필터링 및 정렬을 결합 할 수 있습니다.
  • 내림차순으로 데이터를 가져 오려면 Cloud fireStore가 매우 유용하지만 실시간 데이터베이스에는 사용 가능한 쿼리 기능이 없습니다. 여기에 이미지 설명을 입력하십시오
  • Cloud FireStore에서 여러 "where"메서드를 연결하여보다 구체적인 쿼리 (논리적 AND)를 만들 수도 있습니다. 여기에 이미지 설명을 입력하십시오

확장 성

Cloud Firestore는 실시간 데이터베이스보다 확장 성이 뛰어납니다. 쿼리 성능은 데이터 세트가 아니라 결과 세트의 크기에 비례한다는 점에 유의해야합니다. 따라서 데이터 세트의 크기에 관계없이 검색 속도가 빠릅니다.

데이터 수동 가져 오기

실시간 데이터베이스와 같은 Cloud FireStore에서 데이터를 실시간으로들을 수 있지만 Cloud FireStore에서 데이터를 수동으로 가져올 수도 있습니다 (데이터를 한 번만 원하는 경우).

보안

실시간 데이터베이스에서는 유효성 검사 규칙을 사용하여 데이터를 별도로 유효성 검사해야하지만 Cloud FireStore에서는 데이터 유효성 검사가 자동으로 수행됩니다.

데이터 쓰기

여러 작업을 단일 배치로 실행하고 set(), update()또는 delete()메소드를 조합하여 원자 적으로 완료 할 수 있습니다. 여기에 이미지 설명을 입력하십시오

가격

실시간 데이터베이스에서는 대역폭과 스토리지에 대해서만 요금이 부과되지만 더 높은 요금이 부과됩니다. Cloud FireStore에있는 동안 주로 데이터베이스에서 수행 된 작업 (읽기, 쓰기, 삭제) 및 낮은 속도, 대역폭 및 스토리지에 대해 요금을 청구합니다.


12
원본 기사를 연결하는 것이 좋을 것입니다 : medium.com/@beingrahul/…
Salem Ouerdani

1
'데이터 유효성 검사가 자동으로 수행됩니다'가 무엇을 의미하는지 자세히 설명 할 수 있습니까?
SoEzPz

12

실시간 데이터베이스 대신 Cloud Firestore를 선택해야하는 이유

개선 된 버전입니다

Firebase 데이터베이스는 기본 애플리케이션에 충분했습니다. 그러나 복잡한 요구 사항을 처리 할만큼 강력하지는 않았습니다. Cloud Firestore가 소개 된 이유입니다. 주요 변경 사항은 다음과 같습니다.

  • 기본 파일 구조가 개선되었습니다.
  • 웹 클라이언트에 대한 오프라인 지원
  • 보다 고급 쿼리를 지원합니다.
  • 쓰기 및 트랜잭션 작업은 원 자성입니다.
  • 안정성 및 성능 개선
  • 스케일링이 자동으로 수행됩니다.
  • 더 안전합니다.

가격

Cloud Firestore에서는 대역폭 및 스토리지와 함께 데이터베이스에서 수행되는 작업에 대해 주로 요금을 청구하더라도 요금이 낮아졌습니다. 일일 지출 한도도 설정할 수 있습니다. 청구에 대한 자세한 내용은 다음과 같습니다 .

Google의 향후 계획

실시간 데이터베이스의 결함을 발견했을 때 기존 제품을 개선하는 대신 다른 제품을 만들었습니다. 실시간 데이터베이스에 대한 현재의 입장을 밝히는 신뢰할만한 세부 사항은 없지만 폐기 될 가능성을 생각할 때입니다.




2

Google의 링크 제안 : Firebase 실시간 데이터베이스 및 FireStore

Google 문서에서 추출한 작은 요약입니다.

FireBase 실시간 DB 는 JSON 기반의 NO SQL DB이며 모바일 앱, 지역 용으로, 일반적으로 실시간 / 매우 낮은 대기 시간으로 사용자 / 장치간에 데이터를 저장하고 동기화하는 데 사용됩니다.

FireStore 는 자산 추적, 실시간 분석, 소매 제품 카탈로그 구축, 소셜 사용자와 같은 일반적인 사용 사례를 가진 모든 클라이언트 (모바일 앱뿐만 아니라)를 위해 설계된 높은 동시성, 글로벌 자동 확장 지속성을위한 JSON '유사'NOSQL DB입니다. 프로필, 게임 리더 보드, 채팅 기반 응용 프로그램 등

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.