Firebase は、リアルタイムのデータ同期をサポートする 2 つのクラウドベースのクライアント アクセス可能なデータベース ソリューションを提供します。
Cloud Firestoreは、モバイルアプリ開発用の Firebase の最新データベースです。これは、Realtime Database の成功を基に、より直感的な新しいデータ モデルを使用して構築されています。 Cloud Firestore は、Realtime Database よりもリッチで高速なクエリとスケールも備えています。
Realtime Databaseは、Firebase のオリジナル データベースです。これは、クライアント間で状態をリアルタイムで同期する必要があるモバイル アプリ向けの効率的で低レイテンシのソリューションです。
Firebase が推奨するデータベースはどれですか?
データベース ソリューションの選択は多くの要因に左右されますが、特定の機能に関しては、どのデータベースが適切かをお勧めします。
どちらのソリューションも以下を提供します。
- サーバーをデプロイして維持する必要のない、クライアント ファーストの SDK
- リアルタイム更新
- 無料利用枠、その後は使用した分だけお支払い
重要な考慮事項
両方のデータベースに共通する優れたコア機能を超えて、以下に示す考慮事項の一部またはすべてがアプリの成功にどのように影響するかを考えてください。
データベースの役割 | 私のアプリはデータベースを使用しています... 基本的なクエリを使用して、主にデータを同期します。 高度なクエリ、並べ替え、およびトランザクションが必要ない場合は、 Realtime Databaseをお勧めします。 高度なクエリ、並べ替え、およびトランザクション。 e コマース アプリなど、データとの複雑なやり取りが必要な場合は、 Cloud Firestoreをお勧めします。 |
データの操作 | 私のアプリのデータベースの使用状況は次のようになります... 頻繁に変更される数 GB 以下のデータ。 デジタル ホワイトボード アプリなど、アプリが小さな更新のストリームを送信する場合は、 Realtime Databaseをお勧めします。 変更されるよりもはるかに頻繁に読み取られる、数百 GB から TB のデータ。 非常に大きなデータ セットの場合、およびバッチ オペレーションが頻繁に必要な場合は、 Cloud Firestoreをお勧めします。 |
データ・モデル | データを次のように構造化することを好みます... 単純な JSON ツリー。 JSON の非構造化データについては、 Realtime Databaseをお勧めします。 コレクションに編成されたドキュメント。 構造化ドキュメントとコレクションについては、 Cloud Firestoreをお勧めします。 |
可用性 | 私の可用性のニーズは... 99.999% の非常に高い稼働率を保証します。 e コマース アプリなど、可用性が最も重要な場合は、 Cloud Firestoreをお勧めします。 少なくとも 99.95% のアップタイムを保証します。 非常に高いが重要ではない可用性が許容される場合は、 Cloud FirestoreまたはRealtime Databaseのいずれかをお勧めします。 |
ローカル データに対するオフライン クエリ | 私のアプリは、接続が制限されているか接続されていないデバイスでクエリを実行する必要があります... 頻繁に。 ユーザーがオフラインのときのローカル データに対する高度なクエリ機能については、 Cloud Firestoreをお勧めします。 めったにまたはまったくない。 ユーザーが常にオンラインであることが予想される場合は、 Cloud FirestoreまたはRealtime Databaseをお勧めします。 |
データベース インスタンスの数 | 私の個々のプロジェクトでは、使用する必要があります... 主要な顧客ごとのデータベースなど、多数のデータベース。 1 つの Firebase プロジェクトに複数のデータベースを追加できるため、 Realtime Databaseをお勧めします。 単一のデータベース。 単一のデータベースが必要な場合は、 Cloud FirestoreまたはRealtime Databaseのいずれかをお勧めします。 |
他に考慮すべき重要な点は何ですか?
これまでの重要な考慮事項について検討した後、データベースを選択する準備が整うかもしれません。まだ長所と短所を比較検討している場合は、このセクションで Cloud Firestore と Realtime Database のその他の違いについて説明します。
データ・モデル
Realtime Database と Cloud Firestore はどちらも NoSQL データベースです。
リアルタイム データベース | クラウド ファイアストア |
---|---|
データを 1 つの大きな JSON ツリーとして格納します。
Realtime Database データ モデルの詳細をご覧ください。 | ドキュメントのコレクションとしてデータを格納します。
Cloud Firestore データ モデルの詳細をご覧ください。 |
リアルタイムとオフラインのサポート
どちらもモバイル ファーストのリアルタイム SDK を備えており、オフライン対応アプリ用のローカル データ ストレージをサポートしています。
リアルタイム データベース | クラウド ファイアストア |
---|---|
Apple および Android クライアントのオフライン サポート。 | Apple、Android、および Web クライアントのオフライン サポート。 |
面前
クライアントがオンラインかオフラインかがわかると便利です。 Firebase Realtime Database は、クライアントの接続状態を記録し、クライアントの接続状態が変化するたびに更新を提供できます。
リアルタイム データベース | クラウド ファイアストア |
---|---|
プレゼンス対応。 | ネイティブではサポートされていません。 Cloud Functions を使用して Cloud Firestore と Realtime Database を同期することで、Realtime Database のプレゼンスのサポートを活用できます。 Cloud Firestore でプレゼンスを構築する を参照してください。 |
クエリ
クエリを使用して、いずれかのデータベースからデータを取得、並べ替え、およびフィルター処理します。
リアルタイム データベース | クラウド ファイアストア |
---|---|
並べ替えとフィルタリングの機能が制限された詳細なクエリ。
| 複合並べ替えとフィルタリングを使用したインデックス付きクエリ。
|
書き込みとトランザクション
リアルタイム データベース | クラウド ファイアストア |
---|---|
基本的な書き込みおよびトランザクション操作。
| 高度な書き込みおよびトランザクション操作。 |
信頼性と性能
リアルタイム データベース | クラウド ファイアストア |
---|---|
Realtime Database は地域的なソリューションです。
| Cloud Firestore は、自動的にスケーリングするリージョンおよびマルチリージョン ソリューションです。
|
スケーラビリティ
リアルタイム データベース | クラウド ファイアストア |
---|---|
スケーリングにはシャーディングが必要です。
| スケーリングは自動です。
|
安全
リアルタイム データベース | クラウド ファイアストア |
---|---|
承認と検証を分離するカスケード ルール言語。
| 承認と検証を組み合わせた非カスケード ルール。
|
価格
どちらのソリューションも、 Spark および Blaze の料金プランで利用できます。
リアルタイム データベース | クラウド ファイアストア |
---|---|
帯域幅とストレージに対してのみ課金されますが、料金は高くなります。 詳しくは、 Realtime Database の料金プランをご覧ください。 | 主にデータベースで実行される操作 (読み取り、書き込み、削除) に対して課金され、帯域幅とストレージに対してはより低いレートで課金されます。 Cloud Firestore は、App Engine プロジェクトの 1 日あたりの支出制限をサポートしているため、満足できるコストを超えないようにできます。 Cloud Firestore の料金プランの詳細をご覧ください。 |
Cloud Firestore と Realtime Database の使用
同じ Firebase アプリまたはプロジェクト内で両方のデータベースを使用できます。どちらの NoSQL データベースも同じタイプのデータを格納でき、クライアント ライブラリは同様の方法で動作します。アプリで両方のデータベースを使用する場合は、上記の違いに注意してください。
Realtime DatabaseとCloud Firestoreの両方で利用できる機能の詳細をご覧ください。
データベースを選択する準備はできましたか?
この比較が Firebase データベース ソリューションの決定に役立つことを願っています。これで、Firebase プロジェクトにデータベースを追加する方法を学習できます。
- Cloud Firestoreについては、Cloud Firestore の開始方法をご覧ください。
- Realtime Databaseについては、使用しているプラットフォーム ( Apple 、 Android 、 C++ 、 Unity 、 Web 、またはREST ) の「はじめに」トピックをお読みください。