Firebase Realtime Database
NoSQL クラウド データベースでデータの保管と同期を行うことができます。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても引き続き使用できます。
Realtime Database
Cloud Firestore
優先Firebase Realtime Database はクラウドでホストされるデータベースです。データは JSON として保存され、接続されているすべてのクライアントとリアルタイムに同期されます。Apple プラットフォーム、Android、JavaScript SDK を使用してクロスプラットフォーム アプリを構築した場合、すべてのクライアントが、1 つの Realtime Database インスタンスを共有して、最新のデータによる更新を自動的に受信します。
より豊富なデータモデル、クエリ可能性、スケーラビリティ、高可用性を必要とする最新のアプリケーションには、Cloud Firestore を試すことを検討してください。
準備ができたらプラットフォームを選択します。
主な機能
リアルタイム | Firebase Realtime Database は、一般的な HTTP リクエストではなくデータ同期を使用します。データが変更されるたびに、接続されているあらゆるデバイスがその更新を数ミリ秒以内に受信します。ネットワーク処理を行うコードについて考えることなく、没入感の高いコラボレーション体験を実現できます。 |
オフライン | Firebase アプリはオフラインでも応答できる状態を保ちます。これは、Firebase Realtime Database SDK がデータをディスクに永続化するためです。接続が再確立されると、クライアント デバイスは不足している変更内容を受信して、現在のサーバーの状態と同期します。 |
クライアント デバイスからアクセス可能 | Firebase Realtime Database にはモバイル デバイスやウェブブラウザから直接アクセスできます。アプリケーション サーバーは必要ありません。セキュリティとデータの検証は Firebase Realtime Database セキュリティ ルールによって実現します。このルールは、データの読み取り時または書き込み時に実行される式ベースのルールです。 |
複数のデータベースにわたるスケーリング | Firebase Realtime Database を Blaze お支払いプランで使用すると、同じ Firebase プロジェクト内の複数のデータベース インスタンスにデータを分割することで、アプリケーションのデータニーズを大規模にサポートできます。プロジェクトで Firebase Authentication を使用すると認証を効率化し、データベース インスタンス全体でユーザーを認証できます。それぞれのデータベース インスタンスにカスタム Firebase Realtime Database Security Rules を使用して、各データベースのデータに対するアクセスを制御できます。 |
仕組み
Firebase Realtime Database では、クライアント側のコードから直接、データベースへのセキュアなアクセスを可能にすることで、多機能なコラボレーション アプリケーションを構築できます。データはローカルで永続化され、オフラインでも、リアルタイム イベントは引き続き発生します。これにより、エンドユーザーに応答性の高い体験が提供されます。デバイスがオンラインになると、デバイスのオフライン中にリモートで発生した変更とローカルの変更を Realtime Database が自動的に同期し、競合があれば自動的に解決します。
Realtime Database には、Firebase Realtime Database セキュリティ ルールという柔軟性に優れた式ベースのルール言語が用意されています。この言語で、データの構造と、データの読み取りや書き込みが可能になるタイミングを定義します。Firebase Authentication と統合すると、アクセスを許可する対象のユーザーとデータ、ユーザーによるアクセスの方法をデベロッパーが定義できます。
Realtime Database は NoSQL データベースであり、リレーショナル データベースとは機能や最適化の方法が異なります。Realtime Database API は、短時間で実行できるオペレーションのみが可能なように設計されています。この設計によって、応答性を低下させることなく、数百万ものユーザーにサービスを提供できる優れたリアルタイムの操作性を実現できます。このため、ユーザーがどのような方法でデータにアクセスする必要があるのかという点を踏まえて、データを構造化することが重要です。
実装パス
Firebase Realtime Database SDK を統合する | Gradle、CocoaPods、またはスクリプト インクルードを使用してクライアントをすばやく統合します。 | |
Realtime Database 参照を作成する | JSON データ("users/user:1234/phone_number" など)を参照してデータの設定やデータ変更のサブスクライブを行います。 | |
データを設定し、変更をリッスンする | これらの参照を使用してデータの書き込みや変更のサブスクライブを行います。 | |
オフラインの永続性を有効にする | デバイスのローカル ディスクへのデータの書き込みを許可して、オフラインでもデータを利用できるようにします。 | |
データをセキュリティで保護する | Firebase Realtime Database セキュリティ ルールを使用してデータを保護します。 |
その他のタイプのデータを保存する
- Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。データベースのオプションの違いについては、データベースの選択: Cloud Firestore または Realtime Database をご覧ください。
- Firebase Remote Config は、アプリのアップデートをユーザーにダウンロードしてもらわなくてもアプリの動作と外観を変更できるように、デベロッパーが指定した Key-Value ペアを格納します。
- Firebase Hosting は、ウェブサイト向けの HTML、CSS、JavaScript に加えて、デベロッパーが提供するその他のアセット(画像、フォント、アイコンなど)もホストします。
- Cloud Storage は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。
次のステップ:
- Apple プラットフォーム、Android、ウェブ、Admin の各 SDK、または REST API を使用してデータを設定し、変更をリッスンする。
- Firebase Realtime Database を Apple、Android、ウェブのアプリに追加する。
- Firebase Realtime Database Security Rules を使用してファイルを保護する方法を学習する。