Cloud Firestore と Firebase Realtime Database の違いは何ですか? 質問する

Cloud Firestore と Firebase Realtime Database の違いは何ですか? 質問する

Google は、アプリ用の新しいドキュメント データベースである Cloud Firestore をリリースしました。

ドキュメントを読んでいますが、Firestore と Firebase DB の間に大きな違いは見当たりません。

重要な点は、Firestore ではドキュメントとコレクションが使用されるため、JSON ベースの従来の noSQL データベースである Firebase と比較して、クエリを簡単に使用できることです。

それらの違いや使用法、あるいは Firestore が Firebase DB に代わるようになっただけなのかについて、もう少し詳しく知りたいです。

ベストアンサー1

私は書いたブログ投稿全体この質問についてすべて知りたい方は、ぜひチェックしてみてください(または公式文書より完全な回答については、(英語)をご覧ください。

しかし、簡単な要約がほしい場合は、次のようになります:

クエリの改善とより構造化されたデータ- Realtime Database は単なる巨大な JSON ツリーですが、Cloud Firestore はもう少し構造化されています。すべてのデータは、ドキュメント (基本的にはキーと値のストア) とコレクション (ドキュメントのコレクション) で構成されます。ドキュメントは、サブコレクションを指すこともよくあります。サブコレクションには他のドキュメントが含まれ、サブコレクション自体にも他のドキュメントが含まれることがあります。

この構造化データは、2 つの点で役立ちます。まず、すべてのクエリが浅いため、ドキュメントをリクエストしても、その下にあるすべてのデータを取得することはできません。つまり、データベースを浅く保つことを気にすることなく、データを階層的に保存しておくことができます。次に、クエリがより強力になります。たとえば、データベースの他の部分からのデータを組み合わせる (および非正規化する)「コンボ」フィールドを作成しなくても、複数のフィールドに対してクエリを実行できるようになりました。場合によっては、Cloud Firestore がこれらのクエリを直接実行しますが、インデックスを自動的に作成して維持することもあります。

拡張性を考慮した設計- Cloud Firestore は、Realtime Database よりも拡張性に優れています。クエリはデータセットではなく結果セットのサイズに合わせて拡張されることに注意してください。そのため、データセットがどれだけ大きくなっても、検索は高速のままです。

データの手動取得が簡単- Realtime Database と同様に、Cloud Firestore でリスナーを設定して、変更をリアルタイムでストリーミングできます。ただし、そのような動作は不要で、単に「データを取得する」という単純な呼び出しだけが必要な場合、Cloud Firestore にはその機能もあり、主要な使用例として組み込まれています。( onceRealtime Database での呼び出しよりもはるかに優れています)

マルチリージョンのサポート- これは基本的に、データが複数のデータセンター間で同時に共有されるため、信頼性が向上することを意味します。ただし、強力な一貫性は維持されるため、いつでもクエリを実行して、データの最新バージョンを取得できることが保証されます。

異なる料金モデル- Realtime Database は主にストレージまたはネットワーク帯域幅に基づいて課金されますが、Cloud Firestore は主に実行する操作の数に基づいて課金されます。これは良いことでしょうか、それとも悪いことでしょうか? それはアプリによって異なります。

ニュース アプリ、ターンベースのマルチプレイヤー ゲーム、または独自の Stack Overflow バージョンのようなものを動かす場合、価格面では Cloud Firestore がかなり有利に見えるでしょう。複数の人に 1 秒間に複数の更新を送信するリアルタイム グループ描画アプリのようなものの場合、Realtime Database よりも高価になる可能性があります。

それでも Realtime Database を使用したい理由- 理由はいくつかあります。

  1. 先ほど述べた「頻繁にアップデートするアプリならおそらく安くなるだろう」という話は、

  2. 長い間存在し、何千ものアプリで実戦テストされてきました。

  3. レイテンシが優れているため、リアルタイム感を得るために確実に低いレイテンシが必要な場合は、Realtime Database の方が適している可能性があります。

ほとんどの新しいアプリについては、Cloud Firestore を確認することをお勧めします。ただし、すでに Realtime Database を使用しているアプリがある場合は、特別な理由がない限り、単に切り替えるだけということはお勧めしません。

おすすめ記事