Firebase SDK 上に C++ インターフェースを提供する Firebase C++ SDK を使用して、C++ ゲームをパワーアップしましょう。
プラットフォーム固有のコードを記述することなく、C++ コードのみで Firebase にアクセスできます。また、Firebase で使用される多くの言語固有のイディオムも、Firebase SDK によって C++ デベロッパーになじみのあるインターフェースに変換されます。
Firebase でゲームをパワーアップする方法の詳細については、Firebase のゲームのページをご覧ください。
C++ プロジェクトに Firebase を追加済みの場合は、最新バージョンの Firebase C++ SDK を使用していることを確認します。
前提条件
以下をインストールします。
- Xcode 16.2 以降
- CocoaPods 1.12.0 以降
プロジェクトのターゲットが、次のプラットフォーム バージョン以降であることを確認します。
- iOS 13
- tvOS 13
実機を設定するか、シミュレータを使用してアプリを実行します。
Cloud Messaging を使用しますか?
Apple プラットフォームで Cloud Messaging を使用する場合の前提条件は次のとおりです。
- 物理的な Apple デバイスを設定します。
- Apple Developer アカウントの Apple Push Notification Authentication Key を取得します。
- プッシュ通知を XCode の [App] > [Capabilities] で有効にします。
Google アカウントを使用して Firebase にログインします。
ステップ 2: Firebase プロジェクトを作成する
C++ プロジェクトに接続する Firebase プロジェクトを作成して、C++ プロジェクトに Firebase を追加できるようにします。Firebase プロジェクトの詳細については、Firebase プロジェクトについて理解するをご覧ください。
Firebase プロジェクトを作成する手順を表示する
Firebase または Google Cloud を初めて使用する場合は、次の手順に沿って操作します。
完全に新しい Firebase プロジェクト(およびその基盤となる Google Cloud プロジェクト)を作成する場合も、次の手順に沿って操作できます。
- Firebase コンソールにログインします。
- ボタンをクリックして、新しい Firebase プロジェクトを作成します。
-
テキスト フィールドにプロジェクト名を入力します。
Google Cloud 組織に所属している場合は、必要に応じてプロジェクトを作成するフォルダを選択できます。
- Firebase の利用規約が表示されたら、内容を読み、同意して [続行] をクリックします。
- (省略可)Firebase コンソールで AI アシスタンス(「Gemini in Firebase」)を有効にします。これにより、開発プロセスが合理化され、スムーズに開始できます。
-
(省略可)プロジェクトに対し Google Analytics を設定します。これにより、次の Firebase プロダクトを使用して最適なエクスペリエンスを実現できます。Firebase A/B Testing、Cloud Messaging、Crashlytics、In-App Messaging、Remote Config(パーソナライズを含む)
既存の Google Analytics アカウントを選択するか、新しいアカウントを作成します。新しいアカウントを作成する場合は、Analytics レポートのロケーションを選択し、プロジェクトのデータ共有設定と Google Analytics の規約に同意します。
- [プロジェクトの作成] をクリックします。
Firebase はプロジェクトを作成し、いくつかの初期リソースをプロビジョニングして、重要な API を有効にします。処理が完了すると、Firebase コンソールに Firebase プロジェクトの概要ページが表示されます。
既存の Google Cloud プロジェクトで Firebase の使用を開始する場合は、次の手順に沿って操作します。詳しくは、既存の Google Cloud プロジェクトへの「Firebase の追加」のトラブルシューティングをご覧ください。
- 既存の Google Cloud プロジェクトにアクセスできるアカウントで Firebase コンソールにログインします。
- ボタンをクリックして、新しい Firebase プロジェクトを作成します。
- ページの下部にある [Google Cloud プロジェクトに Firebase を追加] をクリックします。
- テキスト フィールドに既存のプロジェクトのプロジェクト名を入力し、表示されたリストからプロジェクトを選択します。
- [プロジェクトを開く] をクリックします。
- Firebase の利用規約が表示されたら、内容を読み、同意して [続行] をクリックします。
- (省略可)Firebase コンソールで AI アシスタンス(「Gemini in Firebase」)を有効にします。これにより、開発プロセスが合理化され、スムーズに開始できます。
-
(省略可)プロジェクトに対し Google Analytics を設定します。これにより、次の Firebase プロダクトを使用して最適なエクスペリエンスを実現できます。Firebase A/B Testing、Cloud Messaging、Crashlytics、In-App Messaging、Remote Config(パーソナライズを含む)
既存の Google Analytics アカウントを選択するか、新しいアカウントを作成します。新しいアカウントを作成する場合は、Analytics レポートのロケーションを選択し、プロジェクトのデータ共有設定と Google Analytics の規約に同意します。
- [Firebase を追加] をクリックします。
Firebase は、既存のプロジェクトに Firebase を追加します。処理が完了すると、Firebase コンソールに Firebase プロジェクトの概要ページが表示されます。
ステップ 3: アプリを Firebase に登録する
Apple アプリで Firebase を使用するには、アプリを Firebase プロジェクトに登録する必要があります。アプリの登録は、プロジェクトへのアプリの「追加」とも呼ばれます。
Firebaseコンソールに移動します。
プロジェクトの概要ページの中央にある iOS+ アイコンをクリックして、設定ワークフローを起動します。
すでに Firebase プロジェクトにアプリを追加している場合は、[アプリを追加] をクリックするとプラットフォームのオプションが表示されます。
アプリのバンドル ID を [Apple バンドル ID] フィールドに入力します。
バンドル ID とは何ですか?どこで確認できますか?
バンドル ID は、Apple のエコシステム内でアプリケーションを一意に識別するものです。
バンドル ID を確認する: Xcode でプロジェクトを開き、プロジェクト ナビゲータで最上位のアプリを選択し、[General] タブを選択します。
[Bundle Identifier] フィールドの値がバンドル ID です(例:
com.yourcompany.yourproject)。バンドル ID の値は大文字と小文字が区別されます。Firebase プロジェクトに登録すると、該当の Firebase アプリのバンドル ID は変更できなくなることに注意してください。
(省略可)その他のアプリ情報(アプリのニックネームと App Store ID)を入力します。
Firebase 内でアプリのニックネームと App Store ID はどのように使用されますか?
アプリのニックネーム: 内部用の簡易的な ID であり、Firebase コンソールでのみ表示されます。
App Store ID: Firebase Dynamic Links ではユーザーを App Store ページにリダイレクトするために使用され、Google Analytics ではコンバージョン イベントを Google Ads にインポートするために使用されます。まだアプリに App Store ID が割り当てられていない場合は、後でプロジェクトの設定で ID を追加できます。
[アプリを登録] をクリックします。
ステップ 4: Firebase 構成ファイルを追加する
[GoogleService-Info.plist をダウンロード] をクリックして、Firebase Apple プラットフォーム構成ファイルを取得します。
この構成ファイルについて知っておくべきことは何ですか?
Firebase 構成ファイルには、プロジェクトとアプリ用の機密ではない一意の識別子が含まれています。この構成ファイルの詳細については、Firebase プロジェクトについて理解するをご確認ください。
Firebase 構成ファイルはいつでも再ダウンロードできます。
構成ファイル名に
(2)などの文字が追加されていないことを確認します。
IDE で C++ プロジェクトを開き、構成ファイルを C++ プロジェクトのルートにドラッグします。
メッセージが表示されたら、構成ファイルをすべてのターゲットに追加するオプションを選択します。
Firebase コンソールでのセットアップ作業はこれで完了です。次の Firebase C++ SDK を追加するに進んでください。
ステップ 5: Firebase C++ SDK を追加する
このセクションの手順は、サポートされている Firebase プロダクトを Firebase C++ プロジェクトに追加する方法の一例です。
Firebase C++ SDK をダウンロードし、適切な場所で解凍します。
Firebase C++ SDK は特定のプラットフォームを必要としませんが、プラットフォーム固有のライブラリが複数収録されています。
解凍した SDK から、Firebase Pod を追加します。
Podfile がない場合は作成します。
cd
your-app-directory pod init
アプリで使用したい Firebase Pod を Podfile に追加します。
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'# Add the pods for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'
Pod をインストールし、Xcode で
.xcworkspaceファイルを開きます。pod install
open
your-app .xcworkspace
解凍した SDK から Firebase フレームワークを追加します。
通常もっとも簡単なのは、
Finderウィンドウから Xcode のプロジェクト ナビゲータ ペイン(デフォルトでは一番左側のペイン。Xcode の左上にあるファイル アイコンのクリックでも表示できます)に直接ドラッグする方法です。Firebase プロダクトの使用に必要な Firebase C++ フレームワーク
firebase.frameworkを追加します。使用する各 Firebase プロダクト用のフレームワークを追加します。たとえば、Firebase Authentication を使用するには、
firebase_auth.frameworkを追加します。
Firebase コンソールの設定ワークフローに戻り、[次へ] をクリックします。
Analytics を追加した場合は、アプリを実行して、Firebase の統合に成功したという確認を Firebase に送信します。それ以外の場合は、この検証手順をスキップできます。
デバイスログには、初期化が完了したという Firebase の確認が表示されます。ネットワークにアクセスできるエミュレータでアプリを実行した場合、Firebase コンソールでアプリの接続が完了したことが通知されます。
これで設定は完了です。C++ アプリは Firebase プロダクトを使用するように登録され、構成されました。
使用可能なライブラリ
C++ Firebase ライブラリの詳細については、リファレンス ドキュメントと GitHub のオープンソース SDK リリースをご覧ください。
Apple プラットフォームで利用可能なライブラリ
Android 用の C++ ライブラリは、この設定ページの Android バージョンで確認できます。
Firebase プロダクトでは、依存関係がそれぞれ異なります。必要な Firebase プロダクトについて、リストに記されているすべての依存関係を Podfile と C++ プロジェクトへ追加してください。
それぞれの Firebase プロダクトでサポートされるのは、一部の Apple OS プラットフォーム(iOS、tvOS など)のみである場合があります。それぞれのライブラリでサポートされているプラットフォームについては、C++ と Firebase の詳細をご覧ください。
| Firebase プロダクト | フレームワークと Pod |
|---|---|
| AdMob |
(必須)firebase.frameworkfirebase_admob.framework(必須) firebase_analytics.frameworkpod 'FirebaseAdMob', '12.4.0'(必須) pod 'FirebaseAnalytics', '12.4.0'
|
| Analytics |
(必須)firebase.frameworkfirebase_analytics.frameworkpod 'FirebaseAnalytics', '12.4.0'
|
| App Check |
(必須)firebase.frameworkfirebase_app_check.frameworkpod 'FirebaseAppCheck', '12.4.0'
|
| Authentication |
(必須)firebase.frameworkfirebase_auth.frameworkpod 'FirebaseAuth', '12.4.0'
|
| Cloud Firestore |
(必須)firebase.frameworkfirebase_firestore.frameworkfirebase_auth.frameworkpod 'FirebaseFirestore', '12.4.0'pod 'FirebaseAuth', '12.4.0'
|
| Cloud Functions |
(必須)firebase.frameworkfirebase_functions.frameworkpod 'FirebaseFunctions', '12.4.0'
|
| Cloud Messaging |
(必須)firebase.frameworkfirebase_messaging.framework(推奨) firebase_analytics.frameworkpod 'FirebaseMessaging', '12.4.0'(推奨) pod 'FirebaseAnalytics', '12.4.0'
|
| Cloud Storage |
(必須)firebase.frameworkfirebase_storage.frameworkpod 'FirebaseStorage', '12.4.0'
|
| Dynamic Links |
(必須)firebase.frameworkfirebase_dynamic_links.framework(推奨) firebase_analytics.frameworkpod 'FirebaseDynamicLinks', '12.4.0'(推奨) pod 'FirebaseAnalytics', '12.4.0'
|
| Realtime Database |
(必須)firebase.frameworkfirebase_database.frameworkpod 'FirebaseDatabase', '12.4.0'
|
| Remote Config |
(必須)firebase.frameworkfirebase_remote_config.framework(推奨) firebase_analytics.frameworkpod 'FirebaseRemoteConfig', '12.4.0'(推奨) pod 'FirebaseAnalytics', '12.4.0'
|
モバイル設定に関するその他の情報
メソッドの実装入れ替え
iOS では、特定のメソッドを実装するためにアプリ デリゲートを必要とするアプリイベント(URL を開く、通知を受信するなど)があります。たとえば、通知を受信するには、application:didReceiveRemoteNotification: を実装するためのアプリ デリゲートが必要になる場合があります。iOS アプリにはそれぞれ独自のアプリ デリゲートがあるため、Firebase はメソッドの実装入れ替えを使用します。これを使用することで、あるメソッドを別のメソッドと置き換えて、実装した任意のハンドラに加えて独自のハンドラをアタッチできます。
Dynamic Links ライブラリと Cloud Messaging ライブラリは、メソッドの実装入れ替えを使用してアプリ デリゲートにハンドラをアタッチする必要があります。これらの Firebase プロダクトのうちいずれかを使用している場合、読み込みの際に Firebase は AppDelegate クラスを識別し、そのクラスに必要なメソッドを入れ替え、コールバックを既存のメソッド実装に連結します。
デスクトップ ワークフローを設定する(ベータ版)
ゲームを作成する場合、通常はまずデスクトップ プラットフォームでゲームをテストしてから、開発中のモバイル デバイスにデプロイしてテストする方が簡単になります。このワークフローをサポートするために、Windows、macOS、Linux、および C++ エディタ内で実行できる Firebase C++ SDK のサブセットが用意されています。
デスクトップでのワークフローとして、次の作業を実施します。
- CMake 用に C++ プロジェクトを構成する
- Firebase プロジェクトを作成する
- アプリ(iOS や Android)を Firebase に登録する
- モバイル プラットフォーム用 Firebase 構成ファイルを追加する
デスクトップ版の Firebase 構成ファイルを作成します。
Android
google-services.jsonファイルを追加した場合 - アプリの起動時に、Firebase がモバイル用のファイルの場所を特定し、デスクトップ用の Firebase 構成ファイル(google-services-desktop.json)を自動的に生成します。iOS
GoogleService-Info.plistファイルを追加した場合 - アプリの起動前に、モバイル用のファイルをデスクトップ用の Firebase 構成ファイルに変換する必要があります。ファイルを変換するには、GoogleService-Info.plistファイルと同じディレクトリで以下のコマンドを実行してください。generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
このデスクトップ構成ファイルには、Firebase コンソールの設定ワークフローで入力した C++ プロジェクト ID が含まれています。構成ファイルの詳細については、Firebase プロジェクトについて理解するをご覧ください。
Firebase SDK を C++ プロジェクトに追加します。
以下の手順は、サポートされている Firebase プロダクトを C++ プロジェクトに追加する方法の一例です。この例では、Firebase Authentication と Firebase Realtime Database を追加する手順について説明します。
解凍した Firebase C++ SDK の場所を
FIREBASE_CPP_SDK_DIR環境変数に設定します。プロジェクトの
CMakeLists.txtファイルに、使用する Firebase プロダクトのライブラリを含む、以下の内容を追加します。たとえば、Firebase Authentication、Firebase Realtime Database を使用するには、次のように指定します。# Add Firebase libraries to the target using the function from the SDK. add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL) # The Firebase C++ library `firebase_app` is required, # and it must always be listed last. # Add the Firebase SDKs for the products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database set(firebase_libs firebase_auth firebase_database firebase_app) target_link_libraries(${target_name} "${firebase_libs}")
C++ アプリを実行します。
使用可能なライブラリ(デスクトップ)
Firebase C++ SDK には機能のサブセットに対するデスクトップ ワークフローのサポートが含まれているため、Firebase の特定の部分を Windows、maxOS、Linux のスタンドアロン デスクトップ ビルドで使用できます。
| Firebase プロダクト | ライブラリ リファレンス(CMake を使用した場合) |
|---|---|
| App Check |
firebase_app_check(必須) firebase_app
|
| Authentication |
firebase_auth(必須) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_app
|
| Cloud Functions |
firebase_functions(必須) firebase_app
|
| Cloud Storage |
firebase_storage(必須) firebase_app
|
| Realtime Database |
firebase_database(必須) firebase_app
|
| Remote Config |
firebase_remote_config(必須) firebase_app
|
Firebase では残りのデスクトップ ライブラリはスタブ(非機能的)実装であり、Windows、macOS、Linux 向けのビルドを便利にするために提供されています。このため、デスクトップを対象としてコードを条件付きでコンパイルする必要はありません。
Realtime Database デスクトップ
デスクトップ用 Realtime Database SDK では、データベースに対するアクセスに REST が利用されます。このため、デスクトップで Query::OrderByChild() を使って、使用するインデックスを宣言する必要があります。宣言がないとリスナーは失敗します。
デスクトップ設定に関するその他の情報
Windows のライブラリ
Windows の場合、以下の事項に対応するライブラリ バージョンが用意されています。
- ビルド プラットフォーム: 32 ビット(x86)モード、64 ビット(x64)モード
- Windows のランタイム環境: マルチスレッド / MT、マルチスレッド DLL / MD
- ターゲット: リリース、デバッグ
以下のライブラリは、Visual Studio 2015 および 2017 を使用してテストされている点に留意してください。
Windows で C++ デスクトップ アプリをビルドする際は、以下の Windows SDK ライブラリをプロジェクトにリンクしてください。詳しくは、コンパイラのドキュメントを参照してください。
| Firebase C++ ライブラリ | Windows SDK ライブラリの依存関係 |
|---|---|
| App Check | advapi32, ws2_32, crypt32 |
| Authentication | advapi32, ws2_32, crypt32 |
| Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
| Cloud Functions | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
| Cloud Storage | advapi32, ws2_32, crypt32 |
| Realtime Database | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
| Remote Config | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
macOS のライブラリ
macOS(Darwin)の場合、用意されているライブラリ バージョンは 64 ビット(x86_64)プラットフォームに対応したものになります。利便性のためにフレームワークも用意されています。
これらの macOS ライブラリは Xcode 16.2 を使ってテストされています。
macOS で C++ デスクトップ アプリをビルドする際は、プロジェクトに以下をリンクしてください。
pthreadシステム ライブラリCoreFoundationmacOS システム フレームワークFoundationmacOS システム フレームワークSecuritymacOS システム フレームワークGSSmacOS システム フレームワークKerberosmacOS システム フレームワークSystemConfigurationmacOS システム フレームワーク
詳しくは、コンパイラのドキュメントを参照してください。
Linux のライブラリ
Linux の場合、32 ビット(i386)および 64 ビット(x86_64)のプラットフォームに対応するバージョンのライブラリが用意されています。
これらの Linux ライブラリは、GCC 4.8.0、GCC 7.2.0、および Clang 5.0 を使用し Ubuntu 上でテストされていることに留意してください。
Linux で C++ デスクトップ アプリをビルドする際は、プロジェクトに pthread システム ライブラリをリンクしてください。詳しくは、コンパイラのドキュメントを参照してください。GCC 5 以降でビルドする場合は、-D_GLIBCXX_USE_CXX11_ABI=0 を定義してください。
次のステップ
Firebase アプリのサンプルを確認する。
GitHub のオープンソース SDK を確認する。
アプリを起動する準備をする。
- Google Cloud コンソールでプロジェクトの予算アラートを設定する。
- Firebase コンソールの [使用量と請求額] ダッシュボードをモニタリングして、複数の Firebase サービスを通じたプロジェクトの全体的な使用状況を確認する。
- Firebase リリース チェックリストを確認する。