コンソールへ移動

Firebase Realtime Database for C++ を使ってみる

Firebase Realtime Database は NoSQL クラウド データベースを使用してデータの保管と同期を行います。データはすべてのクライアントにわたってリアルタイムで同期され、アプリがオフラインになっても利用可能な状態が維持されます。

始める前に

Firebase Realtime Database, を使用するには、事前に次の作業を行っておく必要があります。

  • C++ プロジェクトを登録して Firebase を使用するように構成します。

    C++ プロジェクトですでに Firebase を使用している場合、この登録と構成はすでに行われています。

  • プロジェクト レベルの build.gradle ファイルの buildscript セクションと allprojects セクションに Google の Maven リポジトリを含めます。

  • 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 を追加して、データベースに対するアクセスを制御できます。

次のステップ

既知の問題

  • デスクトップ プラットフォーム(Windows、Mac、Linux)では、Firebase C++ SDK は、REST を使用してデータベースにアクセスします。そのため、デスクトップの Query::OrderByChild() と合わせて使用するインデックスを宣言する必要があります。宣言しないとリスナーが失敗します。
  • Realtime Database のデスクトップ ワークフロー バージョンでは、オフラインや永続性はサポートされていません。