將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 11.7或更高版本
- CocoaPods 1.9.0或更高版本
確保您的項目面向iOS 10或更高版本。
設置物理iOS設備或使用iOS模擬器運行您的應用。
對於iOS上的Cloud Messaging,需要滿足以下先決條件:
- 設置物理iOS設備。
- 為您的Apple Developer帳戶獲取Apple Push Notification身份驗證密鑰。
- 在“應用”>“功能”下的Xcode中啟用“推送通知”。
使用您的Google帳戶登錄Firebase 。
第2步:創建Firebase項目
在將Firebase添加到C ++項目之前,您需要創建一個Firebase項目以連接到C ++項目。訪問了解Firebase項目以了解有關Firebase項目的更多信息。
第3步:在Firebase中註冊您的應用
在擁有Firebase項目之後,可以將iOS應用添加到其中。
訪問“了解Firebase項目”以了解有關將應用程序添加到Firebase項目的最佳實踐和注意事項的更多信息,包括如何處理多個構建變體。
轉到Firebase控制台。
在項目概述頁面的中心,單擊iOS圖標(
)以啟動設置工作流程。如果您已經將應用程序添加到Firebase項目中,請單擊“添加應用程序”以顯示平台選項。
在iOS捆綁包ID字段中輸入您應用的捆綁包ID 。
捆綁包ID唯一地標識Apple生態系統中的應用程序。
查找您的包ID:在Xcode中打開iOS項目,在項目導航器中選擇頂級應用程序,然後選擇“常規”選項卡。
捆綁包標識符字段的值是iOS捆綁包ID(例如
com.yourcompany.yourproject
)。請注意,捆綁包ID值區分大小寫,並且在您的Firebase項目中註冊後,此Firebase iOS應用程序無法更改它。
(可選)輸入其他應用信息:應用暱稱和應用商店ID 。
應用暱稱:內部便捷標識符,僅在Firebase控制台中對您可見
App Store ID :由Firebase動態鏈接用於將用戶重定向到您的App Store頁面,由Google Analytics(分析)用於將轉化事件導入Google Ads 。如果您的應用還沒有App Store ID,則可以稍後在“項目設置”中添加ID。
點擊註冊應用。
步驟4 :添加Firebase配置文件
單擊“下載GoogleService-Info.plist”以獲取Firebase iOS配置文件。
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,請創建一個Podfile:
cd your-app-directory
pod init
在您的Podfile中,添加要在應用程序中使用的Firebase Pod。
啟用分析
# Add the Firebase pod for Google Analytics pod 'Firebase/Analytics'
# 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 'Firebase/Auth' pod 'Firebase/Database'未啟用分析
# 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 'Firebase/Auth' pod 'Firebase/Database'
安裝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
。
早在火力地堡控制台,在設置工作流程,然後單擊下一步。
如果您添加了Google Analytics(分析),請運行您的應用以將已成功集成Firebase的驗證發送到Firebase。否則,您可以跳過此驗證步驟。
您的設備日誌將顯示Firebase驗證已完成初始化。如果您在具有網絡訪問權限的仿真器上運行應用程序,則Firebase控制台會通知您應用程序連接已完成。
你們都準備好了!您的C ++應用已註冊並配置為使用Firebase產品。
可用庫
在參考文檔和GitHub上的開源SDK版本中了解有關C ++ Firebase庫的更多信息。
適用於iOS的庫
請注意,此設置頁面的Android版本上列出了適用於Android的C ++庫。
每個Firebase產品都有不同的依賴性。確保將所需Firebase產品的所有列出的依賴項添加到Podfile和C ++項目中。
Firebase產品 | 框架和豆莢 |
---|---|
AdMob | (必需) firebase.framework firebase_admob.framework (必需) firebase_analytics.framework pod 'Firebase/AdMob', '7.5.0' (必填) pod 'Firebase/Analytics', '7.5.0' |
分析工具 | (必需) firebase.framework firebase_analytics.framework pod 'Firebase/Analytics', '7.5.0' |
驗證 | (必需) firebase.framework firebase_auth.framework pod 'Firebase/Auth', '7.5.0' |
Cloud Firestore (測試版) | (必需) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'Firebase/Firestore', '7.5.0' pod 'Firebase/Auth', '7.5.0' |
雲功能 | (必需) firebase.framework firebase_functions.framework pod 'Firebase/Functions', '7.5.0' |
雲消息傳遞 | (必需) firebase.framework firebase_messaging.framework (推薦) firebase_analytics.framework pod 'Firebase/Messaging', '7.5.0' (推薦)廣告 pod 'Firebase/Analytics', '7.5.0' |
雲儲存 | (必需) firebase.framework firebase_storage.framework pod 'Firebase/Storage', '7.5.0' |
動態鏈接 | (必需) firebase.framework firebase_dynamic_links.framework (推薦) firebase_analytics.framework pod 'Firebase/DynamicLinks', '7.5.0' (推薦)廣告 pod 'Firebase/Analytics', '7.5.0' |
實時數據庫 | (必需) firebase.framework firebase_database.framework pod 'Firebase/Database', '7.5.0' |
遠程配置 | (必需) firebase.framework firebase_remote_config.framework (推薦) firebase_analytics.framework pod 'Firebase/RemoteConfig', '7.5.0' (推薦)廣告 pod 'Firebase/Analytics', '7.5.0' |
移動設置的其他信息
方法陷入困境
在iOS上,某些應用程序事件(例如打開URL和接收通知)要求您的應用程序委託實現特定的方法。例如,接收通知可能需要您的應用程序委託來實現application:didReceiveRemoteNotification:
由於每個iOS應用程序都有自己的應用程序委託,因此Firebase使用方法swizzling (可以將一個方法替換為另一個方法)來附加自己的處理程序,以及可能已實現的處理程序。
動態鏈接庫和雲消息傳遞庫需要使用處理方法將處理程序附加到應用程序委託。如果您正在使用這些Firebase產品中的任何一個,則在加載時,Firebase會識別您的AppDelegate
類,並將所需的方法添加到該類中,從而將調用鏈接到現有的方法實現。
設置桌面工作流程(測試版)
在創建遊戲時,通常更容易先在台式機平台上測試遊戲,然後在開發中在移動設備上進行部署和測試。為了支持此工作流程,我們提供了Firebase C ++ SDK的子集,這些子集可以在Windows,macOS,Linux以及C ++編輯器中運行。
對於桌面工作流程,您需要完成以下操作:
創建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_auth (必填) firebase_app |
Cloud Firestore (測試版) | firebase_firestore firebase_auth firebase_app |
雲功能 | firebase_functions (必填) firebase_app |
雲儲存 | firebase_storage (必填) firebase_app |
實時數據庫 | firebase_database (必填) firebase_app |
遠程配置 | firebase_remote_config (必填) firebase_app |
為了在Windows,macOS和Linux上構建時方便使用,Firebase提供了剩餘的桌面庫作為存根(非功能性)實現。因此,您無需有條件地編譯代碼即可定位桌面。
實時數據庫桌面
用於桌面的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庫依賴項 |
---|---|
驗證 | advapi32, ws2_32, crypt32 |
Cloud 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)平台的庫版本。還提供了框架以方便您。
請注意,已經使用Xcode 11.7測試了macOS庫。
在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啟動核對錶。