將 Firebase 新增到您的 C++ 項目

使用我們的 Firebase C++ SDK 增強您的 C++ 遊戲,該 SDK 在 Firebase SDK 之上提供 C++ 介面。

完全從 C++ 程式碼存取 Firebase,無需編寫任何平臺本機程式碼。 Firebase SDK 也將 Firebase 使用的許多特定於語言的習慣用法轉換為 C++ 開發人員更熟悉的介面。

請造訪我們的Firebase 遊戲頁面,以了解有關使用 Firebase 增強遊戲效能的更多資訊。

已將 Firebase 新增到您的 C++ 專案中?確保您使用的是最新版本的Firebase C++ SDK

先決條件

  • 安裝以下內容:

    • Xcode 13.3.1 或更高版本
    • CocoaPods 1.12.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. 捆綁包 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,請建立一個:

      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 版本中列出了適用於 Android 的 C++ 程式庫。

每個 Firebase 產品都有不同的依賴項。請務必將所需 Firebase 產品的所有列出的依賴項新增至您的 Podfile 和 C++ 專案中。

每個 Firebase 產品可能僅支援精選的 Apple OS 平台(iOS、tvOS 等)。在了解有關 C++ 和 Firebase 的更多資訊中查看每個庫支援哪些平台。

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

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

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

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

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

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

pod 'FirebaseFunctions', '10.22.0'
雲端訊息傳遞(必需) firebase.framework
firebase_messaging.framework
(建議) firebase_analytics.framework

pod 'FirebaseMessaging', '10.22.0'
(建議) pod 'FirebaseAnalytics', '10.22.0'
雲端儲存(必需) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.22.0'
動態連結(必需) firebase.framework
firebase_dynamic_links.framework
(建議) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.22.0'
(建議) pod 'FirebaseAnalytics', '10.22.0'
即時資料庫(必需) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.22.0'
遠端配置(必需) firebase.framework
firebase_remote_config.framework
(建議) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.22.0'
(建議) pod 'FirebaseAnalytics', '10.22.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_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 與多執行緒 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

下一步