Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase Realtime Database

NoSQL クラウド データベースでデータの保管と同期を行うことができます。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても引き続き使用できます。

Firebase Realtime Database はクラウドホスト型データベースです。データは JSON として保存され、接続されているすべてのクライアントとリアルタイムで同期されます。iOS、Android、JavaScript SDK を使用してクロスプラットフォーム アプリを構築した場合、すべてのクライアントが、1 つの Realtime Database インスタンスを共有して、最新のデータによる更新を自動的に受信します。

iOS の設定 Android の設定

ウェブの設定 REST API

C++ の設定 Unity の設定

管理者の設定

主な機能

リアルタイム Firebase Realtime Database は、一般的な HTTP リクエストではなくデータ同期を使用します。データが変更されるたびに、接続されているあらゆるデバイスがその更新を数ミリ秒以内に受信します。ネットワーク処理を行うコードについて考えることなく、没入感の高いコラボレーション体験を実現できます。
オフライン Firebase アプリはオフラインでも応答できる状態を保ちます。これは、Firebase Realtime Database SDK がデータをディスクに永続化するからです。接続が再確立されると、クライアント デバイスは不足している変更内容を受信して、現在のサーバーの状態と同期します。
クライアント デバイスからアクセス可能 Firebase Realtime Database はモバイル デバイスやウェブブラウザから直接アクセスできます。アプリケーション サーバーは必要ありません。セキュリティとデータの検証は Firebase Realtime Database Security Rules によって実現します。このルールは、データの読み取り時または書き込み時に実行される式ベースのルールです。
複数のデータベースにわたるスケーリング Firebase Realtime Database を Blaze お支払いプランで使用すると、同じ Firebase プロジェクト内の複数のデータベース インスタンスにデータを分割することで、アプリケーションのデータニーズを大規模にサポートできます。プロジェクトで Firebase Authentication を使用すると認証を効率化し、データベース インスタンス全体でユーザーを認証できます。それぞれのデータベース インスタンスにカスタム Firebase Realtime Database ルールを使用して、各データベースのデータに対するアクセスを制御できます。

仕組み

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 Platform からのモバイル、ウェブ、サーバー開発に対応した、柔軟でスケーラブルなデータベースです。データベースのオプションの違いについては、データベースの選択: Cloud Firestore または Realtime Database をご覧ください。
  • Firebase Remote Config は、アプリのアップデートをユーザーにダウンロードしてもらわなくてもアプリの動作と外観を変更できるように、デベロッパーが指定した Key-Value ペアを格納します。
  • Firebase Hosting はウェブサイト向けの HTML、CSS、JavaScript に加えて、デベロッパーが提供するその他のアセット(画像、フォント、アイコンなど)もホストします。
  • Cloud Storage は、画像、動画、音声などのファイルや、ユーザーが作成したその他のコンテンツを保存します。

次の手順: