Firebase には、クライアントからアクセス可能なクラウドベースのドキュメント データベースが 2 つ用意されています。新規のお客様は、Cloud Firestore から始めることをおすすめします。
Cloud Firestore は、25 万人以上のデベロッパーから信頼されている、エンタープライズ クラスの JSON 互換ドキュメント データベースとしておすすめします。クエリ可能性、拡張性、高可用性を必要とするリッチデータモデルを使用するアプリケーションに適しています。また、低レイテンシのクライアント同期とオフライン データアクセスも提供します。
Realtime Database は従来の Firebase JSON データベースです。シンプルなルックアップと低レイテンシの同期を必要とし、スケーラビリティに制限がある単純なデータモデルを使用するアプリケーションに適しています。
検討すべきその他の重要事項
これまでの主な考慮事項について検討すると、データベースを選択できるようになります。まだ長所と短所を検討している場合は、このセクションで Cloud Firestore と Realtime Database のその他の違いについてご覧ください。
データモデル
Realtime Database と Cloud Firestore はどちらも NoSQL データベースです。
Cloud Firestore 推奨 | Realtime Database |
---|---|
データをドキュメントのコレクションとして保存します。
Cloud Firestore データモデルの詳細をご覧ください。 |
データを 1 つの大きな JSON ツリーとして保存します。
Realtime Database データモデルの詳細をご覧ください。 |
リアルタイムおよびオフライン サポート
どちらのデータベースもモバイル向けのリアルタイム SDK を備えており、オフライン対応アプリのローカルデータ ストレージに対応しています。
Cloud Firestore 推奨 | Realtime Database |
---|---|
Apple、Android、ウェブの各クライアント向けのオフライン サポート。 | Apple、Android の各クライアント向けのオフライン サポート。 |
プレゼンス
クライアントがオンラインかオフラインかを知るために役立ちます。Firebase Realtime Database ではクライアントの接続ステータスを記録し、クライアントの接続状態が変化するたびに更新できます。
Cloud Firestore 推奨 | Realtime Database |
---|---|
ネイティブではサポートされません。Cloud Functions を使用して Cloud Firestore と Realtime Database を同期することで、Realtime Database のサポートを活用できます。Cloud Firestore でプレゼンスを構築するをご覧ください。 | プレゼンスをサポート。 |
クエリ
いずれのデータベースもクエリによってデータの取得、並べ替え、フィルタリングを行うことができます。
Cloud Firestore 推奨 | Realtime Database |
---|---|
複合型の並べ替えとフィルタリング機能を備えたインデックス付きクエリ。
|
制限付きの並べ替えとフィルタリング機能を備えた多層型クエリ。
|
書き込みとトランザクション
Cloud Firestore 推奨 | Realtime Database |
---|---|
高度な書き込みオペレーションとトランザクション オペレーション。
|
基本的な書き込みオペレーションとトランザクション オペレーション。
|
信頼性とパフォーマンス
Cloud Firestore 推奨 | Realtime Database |
---|---|
Cloud Firestore は自動的にスケールするリージョンまたはマルチリージョンのソリューションです。
|
Realtime Database はリージョン単位のソリューションです。
|
稼働率
Cloud Firestore 推奨 | Realtime Database |
---|---|
極めて高い稼働時間パフォーマンス。
|
高い稼働時間パフォーマンス。
|
スケーラビリティ
Cloud Firestore 推奨 | Realtime Database |
---|---|
スケーリングは自動で行われます。
|
スケーリングにはシャーディングが必要です。
|
セキュリティ
Cloud Firestore 推奨 | Realtime Database |
---|---|
承認と検証を組み合わせた非カスケード ルール。
|
承認と検証を分離するカスケード ルール。
|
料金
どちらのソリューションも Spark と Blaze の料金プランで利用可能です。
Cloud Firestore 推奨 | Realtime Database |
---|---|
主な課金対象は、データベースで実行されているオペレーション(読み取り、書き込み、削除)、帯域幅、ストレージです。帯域幅とストレージへの課金レートは低く設定されています。
Cloud Firestore は、App Engine プロジェクトの 1 日の使用量上限に対応しており、お客様が設定したコストを超過することはありません。 Cloud Firestore の料金プランの詳細をご覧ください。 |
帯域幅とストレージにのみ課金されますが、課金レートは高くなります。 Realtime Database の料金プランの詳細をご覧ください。 |
Cloud Firestore と Realtime Database の使用
単一の Firebase アプリまたはプロジェクト内で両データベースを並行して使用することができます。いずれの NoSQL データベースも保存できるデータタイプは同じであり、クライアント ライブラリの動作もほぼ同じです。アプリで両方のデータベースを使用する場合には、前述の相違点に注意してください。
Realtime Database と Cloud Firestore の両方で利用可能な機能についてご確認ください。
データベースを選択する準備
この比較が Firebase データベース ソリューションの決定に役立てば幸いです。これで Firebase プロジェクトにデータベースを追加する方法を学習できます。
- Cloud Firestore については、Cloud Firestore を使ってみるをご覧ください。
- Realtime Database については、ご使用のプラットフォームの「スタートガイド」トピック(Apple、Android、C++、Unity、ウェブ、または REST)をご覧ください。