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

使用 Firebase C++ SDK,透過 Firebase SDK 上的 C++ 介面,打造更出色的 C++ 遊戲。

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

如要進一步瞭解如何運用 Firebase 提升遊戲效能,請前往我們的 Firebase 遊戲頁面

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


事前準備

  • 安裝下列項目:

    • Xcode 16.2 以上版本
    • CocoaPods 1.12.0 以上版本
  • 請確認專案是以下列平台版本或更新版本為目標:

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

    如要在 Apple 平台上使用 Cloud Messaging,請先確認是否符合下列必要條件:

    • 設定實體 Apple 裝置
    • Apple 開發人員帳戶取得 Apple 推播通知驗證金鑰。
    • 在 Xcode 中依序前往「App」>「Capabilities」,啟用推播通知。

  • 使用 Google 帳戶登入 Firebase

步驟 2:建立 Firebase 專案

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

如果您是 Firebase 或 Google Cloud 的新手,請按照下列步驟操作。
如要建立全新的 Firebase 專案 (和底層的 Google Cloud 專案),也可以按照下列步驟操作。

  1. 登入 Firebase 控制台
  2. 按一下按鈕,建立新的 Firebase 專案。
  3. 在文字欄位中輸入專案名稱

    如果您是 Google Cloud 機構的成員,可以選擇要在哪個資料夾中建立專案。

  4. 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」
  5. (選用)Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」),協助您開始使用服務及簡化開發程序。
  6. (選用) 為專案設定 Google Analytics, 即可透過下列 Firebase 產品獲得最佳體驗: Firebase A/B TestingCloud MessagingCrashlyticsIn-App MessagingRemote Config (包括 個人化)。

    選取現有Google Analytics帳戶或建立新帳戶。如果建立新帳戶,請選取Analytics報表位置,然後接受專案的資料共用設定和Google Analytics條款。

  7. 按一下「建立專案」

Firebase 會建立專案、提供一些初始資源,並啟用重要的 API。完成後,系統會將您帶往 Firebase 控制台的 Firebase 專案總覽頁面。

如要開始使用 Firebase 搭配現有Google Cloud專案,請按照下列步驟操作。進一步瞭解如何將 Firebase 新增至現有的 Google Cloud 專案

  1. 使用可存取現有 Google Cloud 專案的帳戶登入 Firebase 控制台
  2. 按一下按鈕,建立新的 Firebase 專案。
  3. 在頁面底部點選「將 Firebase 新增到 Google Cloud 專案」
  4. 在文字欄位中,開始輸入現有專案的專案名稱,然後從顯示的清單中選取專案。
  5. 按一下「開啟專案」
  6. 如果系統提示,請詳閱並接受 Firebase 條款,然後按一下「繼續」
  7. (選用)Firebase 控制台中啟用 AI 輔助功能 (稱為「Gemini in Firebase」),協助您開始使用服務及簡化開發程序。
  8. (選用) 為專案設定 Google Analytics, 即可透過下列 Firebase 產品獲得最佳體驗: Firebase A/B TestingCloud MessagingCrashlyticsIn-App MessagingRemote Config (包括 個人化)。

    選取現有Google Analytics帳戶或建立新帳戶。如果建立新帳戶,請選取Analytics報表位置,然後接受專案的資料共用設定和Google Analytics條款。

  9. 按一下「新增 Firebase」

Firebase 將 Firebase 新增至現有專案。 完成後,系統會將您帶往 Firebase 控制台的 Firebase 專案總覽頁面。

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

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

  1. 前往 Firebase 控制台

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

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

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

    • 軟體包 ID 是 Apple 生態系統中應用程式的專屬 ID。

    • 找出軟體包 ID:在 Xcode 中開啟專案,在專案導覽器中選取頂層應用程式,然後選取「General」(一般) 分頁標籤。

      「軟體包 ID」欄位的值是軟體包 ID (例如 com.yourcompany.yourproject)。

    • 請注意,套件 ID 值會區分大小寫,且向 Firebase 專案註冊後,就無法變更這個 Firebase 應用程式的套件 ID。

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

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

步驟 4:新增 Firebase 設定檔

  1. 按一下「Download GoogleService-Info.plist」,取得 Firebase Apple 平台設定檔。

    • Firebase 設定檔包含專案和應用程式的非祕密專屬 ID。如要進一步瞭解這個設定檔,請參閱「瞭解 Firebase 專案」。

    • 您隨時可以再次下載 Firebase 設定檔

    • 請確定設定檔名稱未附加額外的字元,例如 (2)

  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 的「專案導覽器」窗格 (預設為最左側的窗格;或點選 Xcode 左上角的文件圖示)。

    1. 新增 Firebase C++ 架構 firebase.framework,這是使用任何 Firebase 產品的必要條件。

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

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

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

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

大功告成!您的 C++ 應用程式已註冊完畢,並設定為使用 Firebase 產品。

可用的程式庫

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

適用於 Apple 平台的程式庫

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

每個 Firebase 產品都有不同的依附元件。請務必將所需 Firebase 產品的所有列出依附元件,新增至 Podfile 和 C++ 專案。

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

Firebase 產品 架構和 Pod
AdMob (必要) firebase.framework
firebase_admob.framework
(必要) firebase_analytics.framework

pod 'FirebaseAdMob', '12.0.0'
(必要) pod 'FirebaseAnalytics', '12.0.0'
Analytics (必要) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.0.0'
App Check (必要) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.0.0'
Authentication (必要) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '12.0.0'
Cloud Firestore (必要) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '12.0.0'
pod 'FirebaseAuth', '12.0.0'
Cloud Functions (必要) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.0.0'
Cloud Messaging (必要) firebase.framework
firebase_messaging.framework
(建議) firebase_analytics.framework

pod 'FirebaseMessaging', '12.0.0'
(建議) pod 'FirebaseAnalytics', '12.0.0'
Cloud Storage (必要) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.0.0'
Dynamic Links (必要) firebase.framework
firebase_dynamic_links.framework
(建議) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.0.0'
(建議) pod 'FirebaseAnalytics', '12.0.0'
Realtime Database (必要) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.0.0'
Remote Config (必要) firebase.framework
firebase_remote_config.framework
(建議) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.0.0'
(建議) pod 'FirebaseAnalytics', '12.0.0'

行動裝置設定的其他資訊

方法交換

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

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

設定電腦工作流程 (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 AuthenticationFirebase Realtime Database

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

    2. 在專案的 CMakeLists.txt 檔案中加入下列內容,包括要使用的 Firebase 產品的程式庫。舉例來說,如要使用 Firebase AuthenticationFirebase 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 會使用 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 16.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

後續步驟