使用我們的 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.10.0 或更高版本
確保您的專案面向以下平台版本或更高版本:
- iOS 11
- 電視作業系統12
設定實體設備或使用模擬器來運行您的應用程式。
對於 Apple 平台上的雲端訊息傳遞,先決條件如下:
- 設定實體 Apple 裝置。
- 為您的Apple 開發者帳戶取得 Apple 推播通知驗證金鑰。
- 在 Xcode 中的App > Capabilties下啟用推播通知。
使用您的 Google 帳戶登入 Firebase 。
第 2 步:建立 Firebase 項目
在將 Firebase 新增至 C++ 專案之前,您需要建立一個 Firebase 專案以連接到您的 C++ 專案。請造訪了解 Firebase 專案以了解有關 Firebase 專案的更多資訊。
步驟 3 : 向 Firebase 註冊您的應用
要在 Apple 應用程式中使用 Firebase,您需要向 Firebase 專案註冊您的應用程式。註冊您的應用程式通常稱為將您的應用程式「新增」到您的專案中。
轉到Firebase 控制台。
在專案概述頁面的中心,按一下iOS+圖示以啟動設定工作流程。
如果您已將應用程式新增至 Firebase 項目,請按一下新增應用程式以顯示平台選項。
在捆綁包 ID欄位中輸入應用程式的捆綁包 ID。
捆綁 ID唯一標識 Apple 生態系統中的應用程式。
尋找您的捆綁包 ID:在 Xcode 中打開您的項目,在項目導航器中選擇頂級應用程序,然後選擇“常規”選項卡。
捆綁包識別碼欄位的值是捆綁包 ID(例如,
com.yourcompany.yourproject
)。請注意,捆綁包 ID 值區分大小寫,並且在向您的 Firebase 專案註冊後,無法變更此 Firebase 應用程式的捆綁包 ID 值。
(可選)輸入其他應用程式資訊:應用程式暱稱和應用程式商店 ID 。
套用暱稱:內部便捷標識符,僅您在 Firebase 控制台中可見
App Store ID :Firebase 動態連結使用該 ID 將使用者重新導向到您的 App Store 頁面,Google Analytics 使用該 ID 將轉換事件匯入 Google Ads 。如果您的應用程式還沒有 App Store ID,您可以稍後在專案設定中新增該 ID。
點擊註冊應用程式。
第 4 步:新增 Firebase 設定文件
按一下「下載 GoogleService-Info.plist」以取得 Firebase Apple 平台設定檔。
Firebase 設定檔包含您的專案的唯一但非秘密的識別碼。要了解有關此設定檔的更多信息,請訪問了解 Firebase 專案。
您可以隨時再次下載Firebase 設定檔。
確保設定檔名未附加其他字符,例如
(2)
。
在 IDE 中開啟 C++ 項目,然後將設定檔拖曳到 C++ 專案的根目錄中。
如果出現提示,請選擇將設定檔新增至所有目標。
您已完成 Firebase 控制台中的設定任務。繼續在下面加入 Firebase C++ SDK 。
第 5 步:新增 Firebase C++ SDK
本部分中的步驟是如何將受支援的 Firebase 產品新增至 Firebase C++ 專案的範例。
下載Firebase C++ SDK ,然後將 SDK 解壓縮到方便的位置。
Firebase C++ SDK 不特定於平台,但它包含特定於平台的程式庫。
從解壓縮的 SDK 新增 Firebase Pod 。
如果您還沒有 Podfile,請建立一個:
cd your-app-directory
pod init
在您的 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'
安裝 pod,然後在 Xcode 中開啟
.xcworkspace
檔。pod install
open your-app.xcworkspace
從解壓縮的 SDK 新增 Firebase框架。
新增這些框架的最簡單方法通常是將它們從
Finder
視窗直接拖曳到 Xcode 的Project Navigator窗格(預設為最左側的窗格;或按一下 Xcode 左上角的檔案圖示)。添加 Firebase C++ 框架
firebase.framework
,這是使用任何 Firebase 產品所必需的。為您要使用的每個 Firebase 產品新增框架。例如,要使用 Firebase 身份驗證,請新增
firebase_auth.framework
。
返回 Firebase 控制台,在設定工作流程中,按一下下一步。
如果您新增了 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.15.0' (必備) pod 'FirebaseAnalytics', '10.15.0' |
分析 | (必需) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.15.0' |
應用程式檢查 | (必需) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '10.15.0' |
驗證 | (必需) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.15.0' |
雲端Firestore | (必需) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.15.0' pod 'FirebaseAuth', '10.15.0' |
雲端功能 | (必需) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.15.0' |
雲端訊息傳遞 | (必需) firebase.framework firebase_messaging.framework (建議) firebase_analytics.framework pod 'FirebaseMessaging', '10.15.0' (建議) pod 'FirebaseAnalytics', '10.15.0' |
雲端儲存 | (必需) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.15.0' |
動態連結 | (必需) firebase.framework firebase_dynamic_links.framework (建議) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.15.0' (建議) pod 'FirebaseAnalytics', '10.15.0' |
即時資料庫 | (必需) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.15.0' |
遠端配置 | (必需) firebase.framework firebase_remote_config.framework (建議) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.15.0' (建議) pod 'FirebaseAnalytics', '10.15.0' |
移動設定的附加資訊
方法混合
在 iOS 上,某些應用程式事件(例如開啟 URL 和接收通知)需要您的應用程式委託實作特定方法。例如,接收通知可能需要您的應用程式委託實作application:didReceiveRemoteNotification:
。由於每個 iOS 應用程式都有自己的應用程式委託,因此 Firebase 使用方法 swizzling ,該方法允許用一種方法替換另一種方法,除了您可能已實現的任何處理程序之外,還可以附加自己的處理程序。
動態連結和雲端訊息傳遞庫需要使用方法調配將處理程序附加到應用程式委託。如果您使用任何這些 Firebase 產品,則在載入時,Firebase 將識別您的AppDelegate
類別並將所需的方法配配到該類別上,從而將回呼連結回您現有的方法實作。
設定桌面工作流程(測試版)
當您創建遊戲時,首先在桌面平台上測試您的遊戲,然後在開發過程中在行動裝置上進行部署和測試通常會更容易。為了支援此工作流程,我們提供了Firebase C++ SDK 的子集,它可以在 Windows、macOS、Linux 上以及在 C++ 編輯器中運行。
對於桌面工作流程,您需要完成以下操作:
- 為 CMake 配置 C++ 專案。
- 創建 Firebase 項目
- 向 Firebase 註冊您的應用程式(iOS 或 Android)
- 新增移動平台 Firebase 設定文件
建立 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 專案以了解有關設定檔的更多資訊。
將 Firebase SDK 新增到您的 C++ 專案。
以下步驟作為如何將任何受支援的 Firebase 產品新增至您的 C++ 專案的範例。在此範例中,我們將逐步新增 Firebase 驗證和 Firebase 即時資料庫。
將
FIREBASE_CPP_SDK_DIR
環境變數設定為解壓縮後的 Firebase C++ SDK 的位置。在專案的
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}")
運行您的 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
。
下一步
探索GitHub 中的開源 SDK 。
準備啟動您的應用程式:
- 在 Google Cloud Console 中為您的專案設定預算提醒。
- 監控 Firebase 控制台中的使用情況和計費資訊中心,全面了解專案在多個 Firebase 服務中的使用情況。
- 查看Firebase 啟動清單。