Firebase Realtime Database は、NoSQL クラウド データベースを使用してデータを保存および同期します。データはすべてのクライアント間でリアルタイムに同期され、アプリがオフラインになっても引き続き利用できます。
あなたが始める前に
Firebase Realtime Databaseを使用する前に、次のことを行う必要があります。
C++ プロジェクトを登録し、Firebase を使用するように構成します。
C++ プロジェクトですでに Firebase を使用している場合は、Firebase 用に登録および構成されています。
Firebase C++ SDKを C++ プロジェクトに追加します。
Firebase を C++ プロジェクトに追加するには、 Firebase コンソールと開いている C++ プロジェクトの両方でタスクが必要になることに注意してください (たとえば、コンソールから Firebase 構成ファイルをダウンロードして、それらを C++ プロジェクトに移動します)。
データベースを作成する
Firebase コンソールのRealtime Databaseセクションに移動します。既存の Firebase プロジェクトを選択するよう求められます。データベース作成ワークフローに従います。
Firebase セキュリティ ルールの開始モードを選択します。
- テストモード
モバイルおよび Web クライアント ライブラリの使用を開始するのに適していますが、誰でもデータの読み取りと上書きを行うことができます。テスト後、 「Firebase Realtime Database ルールを理解する」セクションを必ず確認してください。
Web、Apple、または Android SDK を開始するには、testmode を選択します。
- ロックモード
モバイルおよび Web クライアントからの読み取りと書き込みをすべて拒否します。認証されたアプリケーション サーバーは引き続きデータベースにアクセスできます。
データベースの場所を選択します。
データベースの場所に応じて、新しいデータベースの 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"
アンドロイド
firebase firebase::App
を作成し、JNI 環境と Java アクティビティへのjobject
参照を引数として渡します。
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 Console でプロジェクトの予算アラートを設定します。
- Firebase コンソールで使用状況と請求のダッシュボードを監視して、複数の Firebase サービスにわたるプロジェクトの使用状況の全体像を把握します。より詳細な使用状況については、リアルタイム データベースの使用状況ダッシュボードにアクセスすることもできます。
- Firebase の起動チェックリストを確認します。
既知の問題点
- デスクトップ プラットフォーム (Windows、Mac、Linux) では、Firebase C++ SDK は REST を使用してデータベースにアクセスします。このため、デスクトップで Query::OrderByChild() で使用するインデックスを宣言する必要があります。そうしないと、リスナーが失敗します。
- Realtime Database のデスクトップ ワークフロー バージョンは、オフラインまたは持続性をサポートしていません。