Firebase Realtime Database は NoSQL クラウド データベースを使用してデータの保管と同期を行います。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても利用可能な状態が維持されます。
始める前に
Firebase Realtime Database, を使用するには、事前に次の作業を行っておく必要があります。
C++ プロジェクトを登録して Firebase を使用するように構成する。
Unity プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。
Firebase C++ SDK を C++ プロジェクトに追加する。
Firebase を C++ プロジェクトに追加するには、Firebase コンソールと開いている C++ プロジェクトの両方でこのタスクを行う必要があります(コンソールから Firebase 構成ファイルをダウンロードして C++ プロジェクトに移動するなど)。
公開アクセスを設定する
Realtime Database には宣言型のルール言語が用意されているため、データの構造化方法、インデックスの作成方法、データの書き込みと読み取りのタイミングを定義できます。認証ユーザーのみがデータの読み取りと書き込みができるように、データベースへの読み書きアクセスはデフォルトで制限されます。Authentication を設定せずに開始するには、公開アクセスルールを構成します。この場合、アプリを使用しない人を含むあらゆる人々にデータベースが公開されるので、認証の設定時には、データベースへのアクセスを必ず制限してください。
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 でのデータの構造化を学習する
- 複数のデータベース インスタンスにデータをスケーリングする
- データを保存する
- データを取得する
- Firebase コンソールでデータベースを表示する
既知の問題
- デスクトップ プラットフォーム(Windows、Mac、Linux)では、Firebase C++ SDK は、REST を使用してデータベースにアクセスします。そのため、デスクトップの Query::OrderByChild() と合わせて使用するインデックスを宣言する必要があります。宣言しないとリスナーが失敗します。
- Realtime Database のデスクトップ ワークフロー バージョンでは、オフラインや永続性はサポートされていません。

