Catch up on highlights from Firebase at Google I/O 2023. Learn more

將 Firebase 添加到您的 C++ 項目

使用我們的 Firebase C++ SDK 增強您的 C++ 遊戲,它在 Firebase SDK 之上提供了一個 C++ 接口。

完全從您的 C++ 代碼訪問 Firebase,無需編寫任何平台原生代碼。 Firebase SDK 還將 Firebase 使用的許多特定語言的習語翻譯成 C++ 開發人員更熟悉的界面。

在我們的Firebase 遊戲頁面上找到有關使用 Firebase 為您的遊戲提供動力的更多信息。

已經將 Firebase 添加到您的 C++ 項目?確保您使用的是最新版本的Firebase C++ SDK

先決條件

  • 安裝以下內容:

    • Xcode 13.3.1 或更高版本
    • CocoaPods 1.10.0 或更高版本
  • 確保您的項目面向以下平台版本或更高版本:

    • iOS 11
    • 電視操作系統 12
  • 設置物理設備或使用模擬器來運行您的應用程序。

  • 使用您的 Google 帳戶登錄 Firebase

第 2 步:創建一個 Firebase 項目

在將 Firebase 添加到 C++ 項目之前,您需要創建一個 Firebase 項目以連接到 C++ 項目。訪問了解 Firebase 項目以了解有關 Firebase 項目的更多信息。

第 3 步:向 Firebase 註冊您的應用

要在您的 Apple 應用程序中使用 Firebase,您需要在 Firebase 項目中註冊您的應用程序。註冊您的應用程序通常稱為將您的應用程序“添加”到您的項目中。

  1. 轉到Firebase 控制台

  2. 在項目概覽頁面的中央,單擊iOS+圖標以啟動設置工作流程。

    如果您已將應用程序添加到 Firebase 項目,請單擊添加應用程序以顯示平台選項。

  3. bundle ID字段中輸入您應用程序的 bundle 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 pod

    1. 如果您還沒有 Podfile,請創建一個:

      cd your-app-directory
      pod init

    2. 在您的 Podfile 中,添加您要在您的應用中使用的 Firebase pod。

      啟用分析

      # 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. 安裝 pod,然後在 Xcode 中打開.xcworkspace文件。

      pod install
      open your-app.xcworkspace

  3. 從解壓縮的 SDK 添加 Firebase框架

    添加這些框架的最簡單方法通常是將它們從Finder窗口直接拖到 Xcode 的Project Navigator窗格(默認情況下是最左側的窗格;或單擊 Xcode 左上角的文件圖標)。

    1. 添加 Firebase C++ 框架firebase.framework ,這是使用任何 Firebase 產品所必需的

    2. 為您要使用的每個 Firebase 產品添加框架。例如,要使用 Firebase 身份驗證,請添加firebase_auth.framework

  4. 返回 Firebase 控制台,在設置工作流程中,單擊下一步

  5. 如果您添加了 Analytics,請運行您的應用以向 Firebase 發送您已成功集成 Firebase 的驗證。否則,您可以跳過此驗證步驟。

    您的設備日誌將顯示初始化已完成的 Firebase 驗證。如果您在具有網絡訪問權限的模擬器上運行您的應用程序, Firebase 控制台會通知您應用程序連接已完成。

一切就緒!您的 C++ 應用已註冊並配置為使用 Firebase 產品。

可用庫

參考文檔和我們在GitHub上發布的開源 SDK 中了解有關 C++ Firebase 庫的更多信息。

適用於 Apple 平台的可用庫

請注意,適用於 Android 的 C++ 庫已列在此設置頁面的 Android 版本中。

每個 Firebase 產品都有不同的依賴項。請務必將所需 Firebase 產品的所有列出的依賴項添加到您的 Podfile 和 C++ 項目中。

每個 Firebase 產品可能僅支持部分 Apple 操作系統平台(iOS、tvOS 等)。在了解有關 C++ 和 Firebase 的更多信息中檢查每個庫支持哪些平台。

火力地堡產品框架和 Pod
AdMob (必需) firebase.framework
firebase_admob.framework
(必需) firebase_analytics.framework

pod 'FirebaseAdMob', '10.10.0'
(必需) pod 'FirebaseAnalytics', '10.10.0'
分析(必需) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.10.0'
應用檢查(必需) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.10.0'
驗證(必需) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.10.0'
雲端 Firestore (必需) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.10.0'
pod 'FirebaseAuth', '10.10.0'
雲端功能(必需) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.10.0'
雲消息(必需) firebase.framework
firebase_messaging.framework
(推薦) firebase_analytics.framework

pod 'FirebaseMessaging', '10.10.0'
(推薦) pod 'FirebaseAnalytics', '10.10.0'
雲儲存(必需) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.10.0'
動態鏈接(必需) firebase.framework
firebase_dynamic_links.framework
(推薦) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.10.0'
(推薦) pod 'FirebaseAnalytics', '10.10.0'
實時數據庫(必需) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.10.0'
遠程配置(必需) firebase.framework
firebase_remote_config.framework
(推薦) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.10.0'
(推薦) pod 'FirebaseAnalytics', '10.10.0'

移動設置的附加信息

方法調配

在 iOS 上,某些應用程序事件(例如打開 URL 和接收通知)需要您的應用程序委託來實現特定的方法。例如,接收通知可能需要您的應用程序委託來實現application:didReceiveRemoteNotification: 。因為每個 iOS 應用程序都有自己的應用程序委託,所以 Firebase 使用method swizzling允許將一種方法替換為另一種方法,以在您可能已經實現的任何處理程序之外附加自己的處理程序。

動態鏈接和雲消息傳遞庫需要使用方法調配將處理程序附加到應用程序委託。如果您正在使用這些 Firebase 產品中的任何一個,在加載時,Firebase 將識別您的AppDelegate類並將所需的方法混入其中,將回調鏈接回您現有的方法實現。

設置桌面工作流程(測試版

當您創建遊戲時,通常更容易先在桌面平台上測試您的遊戲,然後在稍後的開發過程中在移動設備上進行部署和測試。為了支持此工作流程,我們提供了Firebase C++ SDK 的一個子集,它們可以在 Windows、macOS、Linux 上以及從 C++ 編輯器中運行。

  1. 對於桌面工作流,您需要完成以下操作:

    1. 為 CMake 配置 C++ 項目。
    2. 創建一個 Firebase 項目
    3. 向 Firebase 註冊您的應用(iOS 或 Android)
    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 身份驗證和 Firebase 實時數據庫。

    1. FIREBASE_CPP_SDK_DIR環境變量設置為解壓縮的 Firebase C++ SDK 的位置。

    2. 在您項目的CMakeLists.txt文件中,添加以下內容,包括您要使用的 Firebase 產品的。例如,要使用 Firebase 身份驗證和 Firebase 實時數據庫:

      # 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 上的獨立桌面構建中使用。

火力地堡產品庫引用(使用 CMake)
應用檢查firebase_app_check
(必需) firebase_app
驗證firebase_auth
(必需) firebase_app
雲端 Firestore 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 構建時提供便利。因此,您不需要有條件地編譯代碼以針對桌面。

實時數據庫桌面

桌面版實時數據庫 SDK 使用 REST 訪問您的數據庫,因此您必須聲明您在桌面上使用Query::OrderByChild()的索引,否則您的偵聽器將失敗。

桌面設置的附加信息

Windows 庫

對於 Windows,庫版本是根據以下內容提供的:

  • 構建平台:32 位 (x86) 與 64 位 (x64) 模式
  • Windows運行環境:多線程/MT vs 多線程DLL/MD
  • 目標:發布與調試

請注意,以下庫已使用 Visual Studio 2015 和 2017 進行測試。

在 Windows 上構建 C++ 桌面應用程序時,將以下 Windows SDK 庫鏈接到您的項目。有關更多信息,請參閱您的編譯器文檔。

Firebase C++ 庫Windows SDK 庫依賴項
應用檢查advapi32, ws2_32, crypt32
驗證advapi32, ws2_32, crypt32
雲端 Firestore 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

下一步