web-dev-qa-db-ja.com

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

GoogleはCloud Firestoreをリリースしました。これはアプリ用の新しいDocument Databaseです。

私はドキュメントを読んできましたが、FirestoreとFirebase DBの間に多くの違いは見られません。

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

それらの違いや使い方、あるいはFirestoreがFirebase DBの代わりになったのかどうかについてもう少し知りたいですか。

だから私はこのまさにその質問について 全体のブログ投稿 を書きました、そしてより完全な答えのためにそれをチェックアウトすることをお勧めします(または 公式ドキュメント )。

しかし、あなたが手っ取り早い要約を望むのであれば、ここにそれがあります:

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

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

スケールするように設計されています - Cloud Firestoreは、リアルタイムデータベースよりも優れたスケール性が得られます。データセットではなく、結果セットのサイズに合わせてクエリが拡張されることに注意することが重要です。そのため、データセットのサイズが大きくなっても検索は高速になります。

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

マルチリージョンサポート - データは一度に複数のデータセンターで共有されるため、基本的に信頼性が向上します。しかし、あなたはまだ強い一貫性を持っています、それはあなたがいつでも質問をすることができて、あなたがあなたのデータの最新版を手に入れていると確信することができることを意味します。

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

ニュースアプリ、ターン制のマルチプレイヤーゲーム、またはStack Overflowのあなた自身のバージョンのようなものを動かすために、Cloud Firestoreはおそらく価格設定の観点からかなり有利に見えるでしょう。リアルタイムのグループ描画アプリケーションのように、1秒間に複数の更新情報を複数のユーザーに送信する場合は、おそらくリアルタイムデータベースよりも高価になります。

なぜあなたがまだRealtime Databaseを使いたいのか - いくつかの理由が考えられます。 1)全体として、「頻繁に更新を行うアプリのほうが安価になるでしょう」2)それは長い間存在しており、何千ものアプリでテストされています(Cloud Firestoreはまだベータ版です) )、3)それはより良い待ち時間を持っており、あなたがリアルタイムの感触のために確実に低い待ち時間で何かを必要とするとき、リアルタイムデータベースはよりよく働くかもしれません。

ほとんどの新しいアプリでは、Cloud Firestoreをチェックすることをお勧めします。しかし、もしあなたが既にRealtime Databaseにあるアプリを持っているのであれば、切替えのためだけに切替えを行うことをお勧めしません。

それが役立つことを願っています!

256
Todd Kerpelman

あなたはここで全記事を読むことができます: https://medium.com/@beingrahul/firebase-cloud-firestore-v-s-firebase-realtime-database-931d4265d4b0

Firebase Realtime databaseはJSONツリーとして構造化されていますが、Cloud Firestoreは文書(これはキーと値のペアのセットです)およびコレクション(文書のコレクションです)形式でデータを保管します。

その他の構造データ

Realtime DatabaseはJSONツリーにデータを保存しましたが、Cloud firestoreはJSONによく似たデータをドキュメントに保存しました。 enter image description here

Cloud FireStoreでは、Documentsはサブコレクションと入れ子になったオブジェクト(上の図の 'phone'のような)を含むことができます。両方とも文字列(上の図の 'name'、 'email'など)のようなプリミティブフィールド、またはリスト。

より良いクエリ

  • リアルタイムデータベースでは、1つのクエリでプロパティを並べ替えることができます。プロパティを並べ替えることはできません。一方、Cloud FireStoreでは、1つのクエリでフィルタをチェーニングし、フィルタと並べ替えを組み合わせることができます。
  • 降順でデータを取得したい場合は、Cloud fireStoreが非常に役立ちますが、リアルタイムデータベースには利用できるクエリ機能はありません。 enter image description here
  • Cloud FireStoreで複数の「where」メソッドをチェーンして、より具体的なクエリ(論理積)を作成することもできます。 enter image description here

スケーラビリティ

Cloud Firestoreは、Realtime Databaseよりも優れた拡張性を発揮します。クエリのパフォーマンスは、データセットではなく結果セットのサイズに比例することに注意することが重要です。そのため、データセットのサイズが大きくなっても検索は高速になります。

データの手動取得

Cloud FireStoreではリアルタイムデータベースのようにリアルタイムでデータをリスニングできますが、Cloud FireStoreではデータを手動で取得することもできます(任意のデータを1回だけ取得する場合)。

セキュリティ

リアルタイムデータベースでは、検証ルールを使用してデータを個別に検証する必要がありますが、Cloud FireStoreでは、データ検証は自動的に行われます。

データの書き込み

set()update()、またはdelete()メソッドの任意の組み合わせで、単一のバッチとして複数の操作を実行し、それらをアトミックに完了することができます。 enter image description here

価格設定

リアルタイムデータベースでは、帯域幅とストレージに対してのみ課金されますが、より高いレートで課金されます。 Cloud FireStoreにいる間は、主にデータベースで実行された操作(読み取り、書き込み、削除)、およびより低いレート、帯域幅、およびストレージに対して課金されます。

40
0xAliHn

リアルタイムデータベースよりもクラウドファイアーストアを選択する理由

改良版です

Firebaseデータベースは基本的なアプリケーションには十分でした。しかし、複雑な要件を処理するのに十分なほど強力ではありませんでした。 Cloud Firestoreが導入されたのはそのためです。主な変更点は次のとおりです。

  • 基本的なファイル構造が改善されました。
  • Webクライアントのオフラインサポート.
  • より高度なクエリをサポートします。
  • 書き込み操作とトランザクション操作はアトミックです。
  • 信頼性とパフォーマンスの向上
  • スケーリングは自動的に行われます。
  • より安全になります。

価格

Cloud Firestoreでは、帯域幅とストレージと共にデータベースで実行された操作に主に課金されていても、料金は低下しています。あなたは毎日の支出制限も設定することができます。 ここ は請求に関する完全な詳細です。

Googleの今後の計画

彼らがReal-time Databaseで欠陥を発見したとき、彼らは古いものを改良するよりむしろ別の製品を作成しました。 Real-time Databaseに関する現在の順位を明らかにする信頼できる詳細はありませんが、それは放棄される可能性が高いと考え始める時です。



注:その間、Cloud Firestoreは現在ベータ版です。

4
Anees