そのため、この質問全体についてブログ投稿全体を書きました。より完全な回答については、それ(または公式ドキュメント)をチェックすることをお勧めします。
しかし、簡単な(-ish)要約が必要な場合は、次のとおりです。
より良いクエリとより構造化されたデータ -Realtime Databaseは単なる巨大なJSONツリーですが、Cloud Firestoreはもう少し構造化されています。すべてのデータは、ドキュメント(基本的にはKey-Valueストア)とコレクション(ドキュメントのコレクション)で構成されます。ドキュメントは、他のドキュメントが含まれているサブコレクション、他のドキュメントが含まれている可能性のあるサブコレクションなども頻繁に指します。
この構造化データは、2つの点で役立ちます。まず、すべてのクエリは浅いため、その下にあるすべてのデータを取得することなくドキュメントをリクエストできます。つまり、データベースを浅く保つことを心配する必要なく、より理にかなった方法でデータを階層的に保存できます。次に、より強力なクエリがあります。たとえば、データベースの他の部分のデータを結合(および非正規化)する「コンボ」フィールドを作成しなくても、複数のフィールドにわたってクエリを実行できるようになりました。Cloud Firestoreはこれらのクエリを直接実行する場合もあれば、自動的にインデックスを作成して維持する場合もあります。
スケーリングする設計 -Cloud Firestoreは、Realtime Databaseよりも優れたスケーリングが可能になります。クエリは、データセットではなく、結果セットのサイズにスケーリングされることに注意することが重要です。したがって、データセットがどれほど大きくなっても、検索は高速のままです。
より簡単なデータの手動フェッチ -Realtime Databaseと同様に、変更をリアルタイムでストリーミングするようにCloud Firestoreでリスナーを設定できます。しかし、そのような動作が不要で、単純な「データのフェッチ」呼び出しだけが必要な場合は、Cloud Firestoreにも同様の機能があり、主要なユースケースとして組み込まれています。(once
Realtime Databaseランドの呼び出しよりもはるかに優れています)
マルチリージョンのサポート -データは複数のデータセンター間で一度に共有されるため、これは基本的に信頼性の向上を意味します。ただし、強い整合性が保たれているため、常にクエリを実行して、最新バージョンのデータを取得できます。
異なる料金モデル -Realtime Databaseは主にストレージまたはネットワークの帯域幅に基づいて課金しますが、Cloud Firestoreは主に実行した操作の数に基づいて課金します。これは良いですか、悪いですか?それはあなたのアプリに依存します。
ニュースアプリ、ターンベースのマルチプレーヤーゲーム、または独自のバージョンのStack Overflowのようなものを強化する場合、Cloud Firestoreはおそらく価格の観点からかなり有利に見えるでしょう。リアルタイムのグループ描画アプリのように、1秒間に複数の更新を複数のユーザーに送信する場合、おそらくRealtime Databaseよりもコストがかかります。
Realtime Databaseを引き続き使用する理由-いくつかの理由があります。1)前述したように、「頻繁に更新を行うアプリの方が安くなる」ということ、2)長い間使用されており、数千のアプリでテストされていること、3)レイテンシが向上していることまた、リアルタイムの感覚のために確実に低レイテンシの何かが必要な場合は、Realtime Databaseの方が優れている場合があります。
ほとんどの新しいアプリについては、Cloud Firestoreをチェックすることをお勧めします。ただし、すでにRealtime Databaseにあるアプリがある場合、やむを得ない理由がない限り、切り替えのためだけに切り替えることはお勧めしません。
お役に立てば幸いです。