iOS および Android 用の Firebase 上に C++ インターフェイスを提供する Firebase C++ SDK を使用して、C++ ゲームを強化します。
プラットフォーム ネイティブ コードを記述する必要なく、C++ コードから完全に Firebase にアクセスします。また、Firebase SDK は、Firebase で使用される多くの言語固有のイディオムを、C++ 開発者にとってより使い慣れたインターフェイスに変換します。
Firebase ゲームのページで、Firebase を使用してゲームをパワーアップする方法の詳細を確認してください。
すでに Firebase を C++ プロジェクトに追加していますか? Firebase C++ SDKの最新バージョンを使用していることを確認してください。
前提条件
以下をインストールします。
- Xcode 13.3.1 以降
- CocoaPods 1.10.0 以降
プロジェクトが次のプラットフォーム バージョン以降をターゲットにしていることを確認してください。
- iOS11
物理 iOS デバイスをセットアップするか、iOS シミュレーターを使用してアプリを実行します。
Apple プラットフォームでのクラウド メッセージングの前提条件は次のとおりです。
- 物理的な Apple デバイスをセットアップします。
- Apple Developer アカウントの Apple プッシュ通知認証キーを取得します。
- Xcode のApp > Capabilitiesでプッシュ通知を有効にします。
Google アカウントを使用して Firebase にサインインします。
ステップ 2 : Firebase プロジェクトを作成する
Firebase を C++ プロジェクトに追加する前に、Firebase プロジェクトを作成して C++ プロジェクトに接続する必要があります。 Firebase プロジェクトについて詳しくは、 Firebase プロジェクトを理解するをご覧ください。
ステップ 3 : アプリを Firebase に登録する
Apple アプリで Firebase を使用するには、アプリを Firebase プロジェクトに登録する必要があります。アプリを登録することは、多くの場合、アプリをプロジェクトに「追加する」と呼ばれます。
Firebase コンソールに移動します。
プロジェクト概要ページの中央にあるiOS+アイコンをクリックして、セットアップ ワークフローを起動します。
Firebase プロジェクトに既にアプリを追加している場合は、[アプリを追加] をクリックしてプラットフォーム オプションを表示します。
バンドル IDフィールドにアプリのバンドル ID を入力します。
バンドル IDは、Apple のエコシステム内のアプリケーションを一意に識別します。
バンドル ID を見つけます。Xcode でプロジェクトを開き、プロジェクト ナビゲーターでトップレベルのアプリを選択してから、[全般] タブを選択します。
Bundle Identifierフィールドの値はバンドル ID です (例:
com.yourcompany.yourproject
)。バンドル ID の値は大文字と小文字が区別されることに注意してください。この Firebase アプリを Firebase プロジェクトに登録した後は、この値を変更することはできません。
(オプション)その他のアプリ情報を入力します:アプリのニックネームとApp Store ID 。
アプリのニックネーム: Firebase コンソールでのみ表示される、内部の便利な識別子
App Store ID :ユーザーを App Store ページにリダイレクトするために Firebase Dynamic Links によって使用され、コンバージョン イベントを Google 広告にインポートするために Google アナリティクスによって使用されます。アプリに 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をダウンロードし、SDK を便利な場所に解凍します。
Firebase C++ SDK はプラットフォーム固有ではありませんが、プラットフォーム固有のライブラリが含まれています。
解凍した SDK から Firebaseポッドを追加します。
Podfile をまだ持っていない場合は作成します:
cd your-app-directory
pod init
Podfile に、アプリで使用する Firebase ポッドを追加します。
分析が有効
# 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'
ポッドをインストールしてから、Xcode で
.xcworkspace
ファイルを開きます。pod install
open your-app.xcworkspace
プレースホルダー18
解凍した SDK から Firebaseフレームワークを追加します。
これらのフレームワークを追加する最も簡単な方法は、通常、
Finder
ウィンドウから直接 Xcode のProject Navigatorペイン (デフォルトでは左端のペイン、または Xcode の左上にあるファイル アイコンをクリック) にドラッグすることです。Firebase 製品を使用するために必要なFirebase C++ フレームワーク
firebase.framework
を追加します。使用する Firebase プロダクトごとにフレームワークを追加します。たとえば、Firebase Authentication を使用するには、
firebase_auth.framework
を追加します。
Firebase コンソールに戻り、セットアップ ワークフローで [次へ] をクリックします。
アナリティクスを追加した場合は、アプリを実行して、Firebase が正常に統合されたことを示す確認を Firebase に送信します。それ以外の場合は、この検証手順をスキップできます。
デバイスのログには、初期化が完了したことを示す Firebase 検証が表示されます。ネットワークにアクセスできるエミュレーターでアプリを実行した場合、 Firebase コンソールは、アプリの接続が完了したことを通知します。
これで準備完了です。 C++ アプリが登録され、Firebase 製品を使用するように構成されています。
利用可能なライブラリ
C++ Firebase ライブラリの詳細については、リファレンス ドキュメントとGitHubのオープンソース SDK リリースをご覧ください。
iOS で利用可能なライブラリ
Android 用の C++ ライブラリは、このセットアップ ページの Android バージョンにリストされていることに注意してください。
各 Firebase プロダクトには異なる依存関係があります。必要な Firebase 製品の一覧にあるすべての依存関係を Podfile および C++ プロジェクトに必ず追加してください。
Firebase プロダクト | フレームワークとポッド |
---|---|
AdMob | (必須) firebase.framework firebase_admob.framework (必須) firebase_analytics.framework pod 'FirebaseAdMob', '10.3.0' (必須) pod 'FirebaseAnalytics', '10.3.0' |
分析 | (必須) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.3.0' |
認証 | (必須) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.3.0' |
クラウド ファイアストア | (必須) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.3.0' pod 'FirebaseAuth', '10.3.0' |
クラウド機能 | (必須) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.3.0' |
クラウド メッセージング | (必須) firebase.framework firebase_messaging.framework (推奨) firebase_analytics.framework pod 'FirebaseMessaging', '10.3.0' (推奨) pod 'FirebaseAnalytics', '10.3.0' |
クラウドストレージ | (必須) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.3.0' |
動的リンク | (必須) firebase.framework firebase_dynamic_links.framework (推奨) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.3.0' (推奨) pod 'FirebaseAnalytics', '10.3.0' |
リアルタイム データベース | (必須) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.3.0' |
リモート設定 | (必須) firebase.framework firebase_remote_config.framework (推奨) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.3.0' (推奨) pod 'FirebaseAnalytics', '10.3.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_CPP_SDK_DIR
環境変数を、解凍した Firebase C++ SDK の場所に設定します。プロジェクトの
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、macOS、および Linux 上のスタンドアロン デスクトップ ビルドで使用できます。
Firebase プロダクト | ライブラリ参照 (CMake を使用) |
---|---|
認証 | firebase_auth (必須) firebase_app |
クラウド ファイアストア | firebase_firestore firebase_auth firebase_app |
クラウド機能 | firebase_functions (必須) firebase_app |
クラウドストレージ | firebase_storage (必須) firebase_app |
リアルタイム データベース | firebase_database (必須) firebase_app |
リモート設定 | 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
- ターゲット: リリース vs デバッグ
次のライブラリは、Visual Studio 2015 および 2017 を使用してテストされていることに注意してください。
Windows で C++ デスクトップ アプリをビルドする場合は、次の Windows SDK ライブラリをプロジェクトにリンクします。詳細については、コンパイラのドキュメントを参照してください。
Firebase C++ ライブラリ | Windows SDK ライブラリの依存関係 |
---|---|
認証 | advapi32, ws2_32, crypt32 |
クラウド ファイアストア | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
クラウド機能 | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
クラウドストレージ | advapi32, ws2_32, crypt32 |
リアルタイム データベース | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
リモート設定 | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
macOS ライブラリ
macOS (Darwin) の場合、64 ビット (x86_64) プラットフォーム用のライブラリ バージョンが提供されます。便利なフレームワークも提供されています。
macOS ライブラリは、Xcode 13.3.1 を使用してテストされていることに注意してください。
macOS で C++ デスクトップ アプリをビルドする場合は、以下をプロジェクトにリンクします。
-
pthread
システム ライブラリ CoreFoundation
macOS システム フレームワークFoundation
macOS システム フレームワークSecurity
macOS システム フレームワークGSS
macOS システム フレームワークKerberos
macOS システム フレームワークSystemConfiguration
macOS システム フレームワーク
詳細については、コンパイラのドキュメントを参照してください。
Linux ライブラリ
Linux の場合、32 ビット (i386) および 64 ビット (x86_64) プラットフォーム用のライブラリ バージョンが提供されます。
Linux ライブラリは、Ubuntu で GCC 4.8.0、GCC 7.2.0、および Clang 5.0 を使用してテストされていることに注意してください。
Linux で C++ デスクトップ アプリをビルドする場合は、 pthread
システム ライブラリをプロジェクトにリンクします。詳細については、コンパイラのドキュメントを参照してください。 GCC 5 以降でビルドしている場合は、 -D_GLIBCXX_USE_CXX11_ABI=0
を定義します。
次のステップ
サンプルの Firebase アプリを調べる。
アプリを起動する準備をします。
- Google Cloud Console でプロジェクトの予算アラートを設定します。
- Firebase コンソールで使用状況と請求のダッシュボードを監視して、複数の Firebase サービスにわたるプロジェクトの使用状況の全体像を把握します。
- Firebase の起動チェックリストを確認します。