將 Firebase 新增至您的 C++ 專案

Firebase C++ SDK 在 Firebase SDK 之上提供 C++ 介面,可強化 C++ 遊戲。

完全透過 C++ 程式碼存取 Firebase,不必編寫任何平台原生程式碼。Firebase SDK 也會將 Firebase 使用的許多語言專屬慣用語,翻譯成 C++ 開發人員更熟悉的介面。

如要進一步瞭解如何運用 Firebase 強化遊戲,請前往 Firebase 遊戲頁面。

已將 Firebase 新增至 C++ 專案?請確認您使用的是最新版 Firebase C++ SDK。


必要條件

  • 安裝下列項目:

    • Xcode 26.2 以上版本
  • 請確認專案指定下列平台版本或更新版本:

    • iOS 15
    • tvOS 15
  • 設定實體裝置或使用模擬器執行應用程式。

  • 使用 Google 帳戶登入 Firebase。

步驟 2:建立 Firebase 專案

將 Firebase 新增至 C++ 專案前,您需要建立 Firebase 專案,才能連結至 C++ 專案。如要進一步瞭解 Firebase 專案,請參閱「瞭解 Firebase 專案」一文。

步驟 3:向 Firebase 註冊應用程式

如要在 Apple 應用程式中使用 Firebase,您必須向 Firebase 專案註冊應用程式。註冊應用程式通常稱為將應用程式「新增」至專案。

  1. 前往 Firebase 控制台。

  2. 在「專案總覽」頁面中間,按一下「iOS+」圖示,啟動設定工作流程。

    如果您已在 Firebase 專案中新增應用程式,請按一下「Add app」(新增應用程式),顯示平台選項。

  3. 在「bundle ID」欄位中,輸入應用程式的軟體包 ID。

  4. (選用) 輸入其他應用程式資訊:應用程式暱稱和 App Store ID。

  5. 按一下 [Register app] (註冊應用程式)。

步驟 4:新增 Firebase 設定檔

  1. 按一下「Download 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. 使用 Swift Package Manager 安裝及管理 Firebase Apple 平台 SDK 依附元件。

    1. 在 Xcode 中保持開啟應用程式專案,然後依序點選「File」(檔案) 和「Add Package Dependencies」(新增套件依附元件)。

    2. 系統提示時,請新增 Firebase Apple 平台 SDK 存放區:

      https://github.com/firebase/firebase-ios-sdk.git

    3. 在依附元件規則中,選取「Exact Version」,然後輸入 13.1.1。

    4. 選擇要在應用程式中使用的 Firebase 程式庫 (例如 FirebaseAuth 和 FirebaseDatabase)。如果 Firebase 專案已啟用 Google Analytics,請務必新增 FirebaseAnalytics。

    完成後,Xcode 會自動開始在背景解析及下載依附元件。

  3. 從解壓縮 SDK 的 xcframeworks 目錄中,新增 Firebase XCFrameworks。

    如要新增這些 XCFramework,最簡單的方法通常是直接從 Finder 視窗拖曳到 Xcode 的「Project Navigator」窗格 (預設為最左側的窗格,或按一下 Xcode 左上方的檔案圖示),然後新增至應用程式的建構目標。

    1. 新增 Firebase C++ XCFramework firebase.xcframework,這是使用任何 Firebase 產品的必要步驟。

    2. 為要使用的每個 Firebase 產品新增 XCFramework。 舉例來說,如要使用 Firebase Authentication,請新增 firebase_auth.xcframework。

  4. 返回 Firebase 控制台,在設定工作流程中按一下「Next」(下一步)。

  5. 如果您已新增 Analytics,請執行應用程式,向 Firebase 傳送驗證,確認您已成功整合 Firebase。否則,您可以略過這個驗證步驟。

    裝置記錄會顯示 Firebase 驗證,表示初始化已完成。如果您在可存取網路的模擬器上執行應用程式,Firebase 控制台會通知您應用程式連線已完成。

感謝您的註冊!C++ 應用程式已註冊並設定為使用 Firebase 產品。

可用的程式庫

如要進一步瞭解 C++ Firebase 程式庫,請參閱參考文件和 GitHub 上的開放原始碼 SDK 版本。

Apple 平台適用的程式庫

請注意,Android 適用的 C++ 程式庫列在這個設定頁面的 Android 版本中。

每項 Firebase 產品都有不同的依附元件。請務必使用 Swift Package Manager,在 C++ 專案中新增所選 Firebase 產品列出的所有依附元件。

每項 Firebase 產品可能僅支援部分 Apple OS 平台 (iOS、tvOS 等)。如要查看各程式庫支援的平台,請參閱「進一步瞭解 C++ 和 Firebase」。

Firebase 產品 XCFrameworks 和 Swift Package Manager 程式庫
Analytics (必填) firebase.xcframework
firebase_analytics.xcframework

FirebaseAnalytics (13.1.1)
App Check (必填) firebase.xcframework
firebase_app_check.xcframework

FirebaseAppCheck (13.1.1)
Authentication (必填) firebase.xcframework
firebase_auth.xcframework

FirebaseAuth (13.1.1)
Cloud Firestore (必填) firebase.xcframework
firebase_firestore.xcframework
firebase_auth.xcframework

FirebaseFirestore (13.1.1)
FirebaseAuth (13.1.1)
Cloud Functions (必填) firebase.xcframework
firebase_functions.xcframework

FirebaseFunctions (13.1.1)
Cloud Messaging (必填) firebase.xcframework
firebase_messaging.xcframework
(建議) firebase_analytics.xcframework

FirebaseMessaging (13.1.1)
(建議) FirebaseAnalytics (13.1.1)
Cloud Storage (必填) firebase.xcframework
firebase_storage.xcframework

FirebaseStorage (13.1.1)
Realtime Database (必填) firebase.xcframework
firebase_database.xcframework

FirebaseDatabase (13.1.1)
Remote Config (必填) firebase.xcframework
firebase_remote_config.xcframework
(建議) firebase_analytics.xcframework

FirebaseRemoteConfig (13.1.1)
(建議) FirebaseAnalytics (13.1.1)
已淘汰或不支援的程式庫
Dynamic Links (必填) firebase.xcframework
firebase_dynamic_links.xcframework
(建議) firebase_analytics.xcframework

FirebaseDynamicLinks (13.1.1)
(建議) FirebaseAnalytics (13.1.1)

行動裝置設定的其他資訊

不使用 Swift Package Manager 進行整合

如果不想使用 Swift Package Manager 管理基礎 Firebase Apple 平台 SDK 依附元件,請參閱 Apple 平台設定指南中的「不使用 Swift Package Manager 進行整合」一節,瞭解其他整合選項。

方法交換

在 iOS 上,某些應用程式事件 (例如開啟網址和接收通知) 需要應用程式委派來實作特定方法。舉例來說,如要接收通知,應用程式委派代表可能需要實作 application:didReceiveRemoteNotification:。由於每個 iOS 應用程式都有自己的應用程式委派,Firebase 會使用方法交換 (可將某個方法替換為另一個方法),除了您可能已實作的處理常式外,還會附加自己的處理常式。

Dynamic Links 和 Cloud Messaging 程式庫需要使用方法交換,將處理常式附加至應用程式委派。如果您使用上述任何 Firebase 產品,Firebase 會在載入時識別您的 AppDelegate 類別,並將必要的方法 swizzle 到該類別,然後將回呼鏈結至現有的方法實作。

設定電腦版工作流程 (Beta 版)

建立遊戲時,通常先在電腦平台上測試遊戲,然後在開發階段後期部署及測試行動裝置,會比較容易。為支援這項工作流程,我們提供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 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 包含部分功能的電腦工作流程支援,可在 Windows、macOS 和 Linux 的獨立電腦版本中使用 Firebase 的特定部分。

Firebase 產品 程式庫參考資料 (使用 CMake)
App Check firebase_app_check
(必要) firebase_app
Authentication firebase_auth
(必要) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions firebase_functions
(必要) firebase_app
Cloud Storage firebase_storage
(必要) firebase_app
Realtime Database firebase_database
(必要) firebase_app
Remote Config firebase_remote_config
(必要) firebase_app

Firebase 提供其餘的電腦程式庫做為虛設常式 (非功能性) 實作,方便您建構 Windows、macOS 和 Linux 應用程式。因此,您不需要有條件地編譯程式碼,即可指定電腦。

Realtime Database 電腦

Realtime Database SDK for Desktop 會使用 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 程式庫依附元件
App Check advapi32, ws2_32, crypt32
Authentication advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Cloud Functions advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote Config advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS 程式庫

如果是 macOS (Darwin),則會提供 64 位元 (x86_64) 平台的程式庫版本。我們也提供框架,方便您使用。

請注意,macOS 程式庫已使用 Xcode 26.2 測試。

在 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。

後續步驟