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

使用我們的 Firebase C++ SDK 為您的 C++ 遊戲提供動力,該 SDK 在 Firebase 之上為 iOS 和 Android 提供 C++ 接口。

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

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

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

先決條件

  • 安裝以下內容:

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

    • iOS 10
  • 設置物理 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. (可選)輸入其他應用信息:應用暱稱應用商店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,請創建一個 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 控制台,在設置工作流程中,單擊Next

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

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

你都準備好了!您的 C++ 應用已註冊並配置為使用 Firebase 產品。

可用庫

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

適用於 iOS 的可用庫

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

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

Firebase 產品框架和 Pod
AdMob (必需) firebase.framework
firebase_admob.framework
(必需) firebase_analytics.framework

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

pod 'FirebaseAnalytics', '9.1.0'
驗證(必需) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '9.1.0'
雲防火牆(必需) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '9.1.0'
pod 'FirebaseAuth', '9.1.0'
雲函數(必需) firebase.framework
firebase_functions.framework

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

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

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

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

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

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

移動設置的附加信息

方法混搭

在 iOS 上,一些應用程序事件(例如打開 URL 和接收通知)需要您的應用程序委託來實現特定的方法。例如,接收通知可能需要您的應用程序委託實現application:didReceiveRemoteNotification: 。因為每個 iOS 應用程序都有自己的應用程序委託,所以 Firebase 使用方法 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 上的獨立桌面構建中使用。

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 構建時提供便利。因此,您不需要有條件地編譯代碼以針對桌面。

實時數據庫桌面

用於桌面的實時數據庫 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, 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

下一步