Cloud Firestore
Google Cloud インフラストラクチャ上に構築された柔軟でスケーラブルな NoSQL クラウド データベースを使用して、クライアントサイドおよびサーバーサイド開発用のデータを保存および同期します。
Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。Firebase Realtime Database と同様に、リアルタイム リスナーを介してクライアント アプリ間でデータを同期し、モバイルとウェブのオフライン サポートを提供します。これにより、ネットワーク レイテンシやインターネット接続に関係なく機能するレスポンシブ アプリを構築できます。Cloud Firestore は、他の Firebase プロダクトや Google Cloud プロダクト(Cloud Functions など)とのシームレスなインテグレーションも実現します。
主な機能
柔軟性 | Cloud Firestore データモデルは、柔軟な階層型データ構造に対応しています。データはドキュメントに格納され、ドキュメントはコレクションにまとめられます。ドキュメントには、サブコレクションの他に複雑なネスト オブジェクトを含めることができます。 |
高機能なクエリ処理 | Cloud Firestore では、個別のドキュメントを取得する場合や、クエリ パラメータに一致するすべてのドキュメントをコレクションで取得する場合に、クエリを使用できます。クエリには複数の連鎖フィルタを使用でき、またフィルタ処理と並べ替え処理を組み合わせることができます。デフォルトではクエリにはインデックスが付いているので、クエリのパフォーマンスは、データセットではなく結果セットのサイズに比例します。 |
リアルタイム アップデート | Realtime Database と同様に、Cloud Firestore はデータ同期を使用してコネクテッド デバイスのデータを更新します。ただし、シンプルな 1 回限りの取得クエリを効率的に実行するようにも設計されています。 |
オフライン サポート | Cloud Firestore によってアプリが頻繁に使用するデータがキャッシュに保存されるため、デバイスがオフラインの場合でも、アプリはデータの書き込み、読み取り、リッスン、クエリを実行できます。デバイスがオンラインに戻ると、ローカルで行われた変更が Cloud Firestore によって Cloud Firestore に同期されます。 |
スケーラビリティのある設計 | Cloud Firestore は、Google Cloud の強力なインフラストラクチャの優れた機能(自動マルチリージョン データ複製、強整合性の保証、アトミックなバッチ オペレーション、実際のトランザクションのサポート)を活用します。Cloud Firestore は、世界でも最大規模のアプリの最も過酷なワークロードに対応できるように設計されています。 |
仕組み
Cloud Firestore は、クラウドホストの NoSQL データベースであり、Apple アプリ、Android アプリ、およびウェブアプリからネイティブ SDK を介して直接アクセスできます。Cloud Firestore は、REST API と RPC API の他に、ネイティブ Node.js、Java、Python、Unity、C++、および Go SDK で使用可能です。
Cloud Firestore の NoSQL データモデルに従い、値に対応するフィールドを含むドキュメントにデータを格納します。これらのドキュメントはコレクションに格納されます。コレクションは、データの編成とクエリの作成に使用できるドキュメントのコンテナです。ドキュメントでは、単純な文字列や数値から複雑なネスト オブジェクトまで、さまざまなデータタイプがサポートされています。また、ドキュメント内にサブコレクションを作成し、データベースの拡大に合わせて拡張できる階層型データ構造を構築できます。Cloud Firestore データモデルでは、アプリに最適なあらゆるデータ構造がサポートされています。
また、Cloud Firestore でのクエリ処理は機能性、効率性、柔軟性に優れています。層が少ないクエリを作成することで、コレクション全体またはネスト サブコレクションを取得することなくドキュメント レベルでデータを取得できます。クエリまたはカーソルに並べ替え、フィルタ、制限を追加して、結果をページ処理できます。更新が発生するたびにデータベース全体を取得することなく、アプリ内のデータを最新の状態に保つには、リアルタイム リスナーを追加します。リアルタイム リスナーをアプリに追加すると、クライアント アプリがリッスンしているデータが変更されるたびに、アプリからデータ スナップショットにより通知され、新しい変更だけが取得されます。
Android、Apple プラットフォーム、JavaScript では Firebase Authentication と Cloud Firestore Security Rules を使用し、サーバーサイド言語では Identity and Access Management(IAM)を使用して Cloud Firestore のデータへのアクセスを保護します。
実装パス
Cloud Firestore SDK を統合する | Gradle、CocoaPods、またはスクリプト インクルード経由でクライアントをすばやく統合します。 | |
データをセキュリティで保護する | Cloud Firestore Security Rules または Identity and Access Management(IAM)を使用して、モバイル / ウェブ開発とサーバー開発のデータをそれぞれ保護します。 | |
データの追加 | データベースにドキュメントとコレクションを作成します。 | |
データを取得する | クエリを作成するか、リアルタイム リスナーを使用して、データベースからデータを取得します。 |
次のステップ
- Cloud Firestore を使ってみる - データベースを設定してデータを追加し、データの読み取りを開始する。
- Cloud Firestore のデータモデルの詳細を確認する。
- Realtime Database と Cloud Firestore の違いを確認する。