Firebase Realtime Database は NoSQL クラウド データベースを使用してデータの保管と同期を行います。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても利用可能な状態が維持されます。
始める前に
Firebase Realtime Database を使用するには、事前に次の作業を行っておく必要があります。
C++ プロジェクトを登録して Firebase を使用するように構成します。
C++ プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。
Firebase C++ SDK を C++ プロジェクトに追加します。
Firebase を C++ プロジェクトに追加するには、Firebase コンソールと開いている C++ プロジェクトの両方でこのタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードして C++ プロジェクトに移動するなど)。
データベースを作成する
Firebase コンソールの [Realtime Database] セクションに移動します。既存の Firebase プロジェクトを選択するよう求められます。データベース作成ワークフローに従います。
Firebase セキュリティ ルールの開始モードを選択します。
- テストモード
モバイルおよびウェブ クライアント ライブラリを使用する場合に適していますが、すべてのユーザーがデータを読み取り、上書きできます。テストが終わったら、Firebase Realtime Database セキュリティ ルールを理解するを確認してください。
Web SDK、Apple SDK、Android SDK を使用する場合は、テストモードを選択します。
- ロックモード
モバイルおよびウェブ クライアントからのすべての読み書きを拒否します。認証されたアプリケーション サーバーは引き続きデータベースにアクセスできます。
データベースのロケーションを選択します。
データベースのロケーションに応じて、新しいデータベースの URL は次のいずれかの形式になります。
(DATABASE_NAME.firebaseio.com
us-central1
のデータベースの場合) (他のすべてのロケーションのデータベースの場合)DATABASE_NAME.REGION.firebasedatabase.app
[完了] をクリックします。
Realtime Database を有効にすると、Cloud API Manager で API も有効になります。
firebase::App を作成して初期化する
Realtime Database にアクセスするには、事前に firebase::App
を作成して初期化する必要があります。
firebase::App
のヘッダー ファイルを追加します。
#include "firebase/app.h"
Android
firebase::App
を作成し、引数として JNI 環境と jobject
参照を Java アクティビティに渡します。
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS+
firebase::App
を作成します。
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
firebase::database::Database クラスにアクセスする
firebase::database::Database
は、Firebase Realtime Database C++ SDK のエントリ ポイントです。
::firebase::database::Database *database = ::firebase::database::Database::GetInstance(app);
公開アクセスルールを使用することにした場合は、データの保存と取得に関するセクションに進むことができます。
アクセス制限を設定する
公開アクセスを使用しない場合、アプリに Firebase Authentication を追加して、データベースに対するアクセスを制御できます。
次のステップ
Realtime Database でのデータの構造化を学習する。
アプリをリリースする準備をします。
- Google Cloud コンソールでプロジェクトの予算アラートを設定する。
- Firebase コンソールの [使用量と請求額] ダッシュボードをモニタリングして、複数の Firebase サービスにまたがるプロジェクトの全体的な使用状況を確認する。使用状況の詳しい情報を確認するには、Realtime Database の使用状況ダッシュボードをご利用ください。
- Firebase リリース チェックリストを確認する。
既知の問題
- デスクトップ プラットフォーム(Windows、Mac、Linux)では、Firebase C++ SDK は、REST を使用してデータベースにアクセスします。そのため、デスクトップの Query::OrderByChild() と合わせて使用するインデックスを宣言する必要があります。宣言しないとリスナーが失敗します。
- Realtime Database のデスクトップ ワークフロー バージョンでは、オフラインや永続性はサポートされていません。