Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

C ++プロジェクトにFirebaseを追加する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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 シミュレーターを使用してアプリを実行します。

  • Google アカウントを使用して Firebase にサインインします。

ステップ 2 : Firebase プロジェクトを作成する

Firebase を C++ プロジェクトに追加する前に、Firebase プロジェクトを作成して C++ プロジェクトに接続する必要があります。 Firebase プロジェクトについて詳しくは、 Firebase プロジェクトを理解するをご覧ください。

ステップ 3 : アプリを Firebase に登録する

Apple アプリで Firebase を使用するには、アプリを Firebase プロジェクトに登録する必要があります。アプリを登録することは、多くの場合、アプリをプロジェクトに「追加する」と呼ばれます。

  1. Firebase コンソールに移動します。

  2. プロジェクト概要ページの中央にあるiOS+アイコンをクリックして、セットアップ ワークフローを起動します。

    Firebase プロジェクトに既にアプリを追加している場合は、[アプリを追加] をクリックしてプラットフォーム オプションを表示します。

  3. バンドル IDフィールドにアプリのバンドル ID を入力します。

  4. (オプション)その他のアプリ情報を入力します:アプリのニックネームApp Store ID

  5. [アプリを登録]をクリックします。

ステップ 4 : Firebase 構成ファイルを追加する

  1. [ GoogleService-Info.plist をダウンロード]をクリックして、Firebase Apple プラットフォームの構成ファイルを取得します。

  2. IDE で C++ プロジェクトを開き、構成ファイルを C++ プロジェクトのルートにドラッグします。

  3. プロンプトが表示されたら、構成ファイルをすべてのターゲットに追加することを選択します。

Firebase コンソールでのセットアップ タスクが完了しました。以下のFirebase C++ SDK の追加に進みます。

ステップ 5 : Firebase C++ SDK を追加する

このセクションの手順は、サポートされている Firebase 製品を Firebase C++ プロジェクトに追加する方法の例です。

  1. Firebase C++ SDKをダウンロードし、SDK を便利な場所に解凍します。

    Firebase C++ SDK はプラットフォーム固有ではありませんが、プラットフォーム固有のライブラリが含まれています。

  2. 解凍した SDK から Firebaseポッドを追加します。

    1. Podfile をまだ持っていない場合は作成します:

      cd your-app-directory
      pod init

    2. 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'
    3. ポッドをインストールしてから、Xcode で.xcworkspaceファイルを開きます。

      pod install
      open your-app.xcworkspace
      プレースホルダー18

  3. 解凍した SDK から Firebaseフレームワークを追加します。

    これらのフレームワークを追加する最も簡単な方法は、通常、 Finderウィンドウから直接 Xcode のProject Navigatorペイン (デフォルトでは左端のペイン、または Xcode の左上にあるファイル アイコンをクリック) にドラッグすることです。

    1. Firebase 製品を使用するために必要なFirebase C++ フレームワークfirebase.frameworkを追加します。

    2. 使用する Firebase プロダクトごとにフレームワークを追加します。たとえば、Firebase Authentication を使用するには、 firebase_auth.frameworkを追加します。

  4. Firebase コンソールに戻り、セットアップ ワークフローで [次へ] をクリックします。

  5. アナリティクスを追加した場合は、アプリを実行して、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.1.0'
(必須) pod 'FirebaseAnalytics', '10.1.0'
分析(必須) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.1.0'
認証(必須) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.1.0'
クラウド ファイアストア(必須) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.1.0'
pod 'FirebaseAuth', '10.1.0'
クラウド機能(必須) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.1.0'
クラウド メッセージング(必須) firebase.framework
firebase_messaging.framework
(推奨) firebase_analytics.framework

pod 'FirebaseMessaging', '10.1.0'
(推奨) pod 'FirebaseAnalytics', '10.1.0'
クラウドストレージ(必須) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.1.0'
動的リンク(必須) firebase.framework
firebase_dynamic_links.framework
(推奨) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.1.0'
(推奨) pod 'FirebaseAnalytics', '10.1.0'
リアルタイム データベース(必須) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.1.0'
リモート設定(必須) firebase.framework
firebase_remote_config.framework
(推奨) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.1.0'
(推奨) pod 'FirebaseAnalytics', '10.1.0'

モバイル設定に関する追加情報

メソッドの入れ替え

iOS では、一部のアプリケーション イベント (URL を開く、通知を受信するなど) では、アプリケーション デリゲートで特定のメソッドを実装する必要があります。たとえば、通知を受信するには、アプリケーション デリゲートがapplication:didReceiveRemoteNotification:を実装する必要がある場合があります。各 iOS アプリケーションには独自のアプリ デリゲートがあるため、Firebase はメソッド スウィズリングを使用します。これにより、あるメソッドを別のメソッドに置き換えることができ、実装済みのハンドラーに加えて独自のハンドラーをアタッチできます。

Dynamic Links と Cloud Messaging ライブラリは、メソッド スウィズリングを使用してハンドラーをアプリケーション デリゲートにアタッチする必要があります。これらの Firebase 製品のいずれかを使用している場合、読み込み時に、Firebase はAppDelegateクラスを識別し、必要なメソッドをそのクラスにスウィズルして、既存のメソッド実装へのコールバックを連鎖させます。

デスクトップ ワークフローをセットアップする (ベータ)

ゲームを作成するときは、多くの場合、最初にデスクトップ プラットフォームでゲームをテストしてから、開発の後半でモバイル デバイスに展開してテストする方がはるかに簡単です。このワークフローをサポートするために、Windows、macOS、Linux、および C++ エディター内で実行できるFirebase C++ SDK のサブセットを提供しています。

  1. デスクトップ ワークフローの場合、次の手順を完了する必要があります。

    1. CMake 用に C++ プロジェクトを構成します。
    2. Firebase プロジェクトを作成する
    3. アプリ (iOS または Android) を Firebase に登録する
    4. モバイル プラットフォームの Firebase 構成ファイルを追加する
  2. 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 プロジェクトを理解するをご覧ください。

  3. Firebase SDK を C++ プロジェクトに追加します。

    以下の手順は、サポートされている Firebase 製品を C++ プロジェクトに追加する方法の例として役立ちます。この例では、Firebase Authentication と Firebase Realtime Database の追加について説明します。

    1. FIREBASE_CPP_SDK_DIR環境変数を、解凍した Firebase C++ SDK の場所に設定します。

    2. プロジェクトの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}")
      
  4. 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を定義します。

次のステップ