Google 致力于为黑人社区推动种族平等。查看具体举措
此页面由 Cloud Translation API 翻译。
Switch to English

將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 10.3.0或更高版本
    • CocoaPods 1.4.0或更高版本
  • 確保您的項目面向iOS 8或更高版本。

  • 設置物理iOS設備或使用iOS模擬器運行您的應用。

  • 使用您的Google帳戶登錄Firebase

第2步:創建Firebase項目

在將Firebase添加到C ++項目之前,您需要創建一個Firebase項目以連接到C ++項目。訪問了解Firebase項目以了解有關Firebase項目的更多信息。

第3步:在Firebase中註冊您的應用

在擁有Firebase項目之後,可以將iOS應用添加到其中。

訪問“了解Firebase項目”以了解有關向Firebase項目添加應用程序的最佳實踐和注意事項的更多信息,包括如何處理多個構建變體。

  1. 轉到Firebase控制台

  2. 在項目概述頁面的中心,單擊iOS圖標( )以啟動設置工作流程。

    如果您已經將應用程序添加到Firebase項目中,請單擊“添加應用程序”以顯示平台選項。

  3. iOS捆綁包ID字段中輸入您應用的捆綁包ID

  4. (可選)輸入其他應用信息:應用暱稱應用商店ID

  5. 點擊註冊應用

步驟4 :添加Firebase配置文件

  1. 單擊“下載GoogleService-Info.plist”以獲取Firebase iOS配置文件。

  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 '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'
    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. 早在火力地堡控制台,在設置工作流程,然後單擊下一步

  5. 如果您添加了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', '6.32.2'
(必填)廣告pod 'Firebase/Analytics', '6.32.2'
分析工具(必需) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '6.32.2'
認證方式(必需) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '6.32.2'
Cloud Firestore (alpha) (必需) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '6.32.2'
pod 'Firebase/Auth', '6.32.2'
雲功能(必需) firebase.framework
firebase_functions.framework

pod 'Firebase/Functions', '6.32.2'
雲消息傳遞(必需) firebase.framework
firebase_messaging.framework
(推薦) firebase_analytics.framework

pod 'Firebase/Messaging', '6.32.2'
(推薦)廣告pod 'Firebase/Analytics', '6.32.2'
雲儲存(必需) firebase.framework
firebase_storage.framework

pod 'Firebase/Storage', '6.32.2'
動態鏈接(必需) firebase.framework
firebase_dynamic_links.framework
(推薦) firebase_analytics.framework

pod 'Firebase/DynamicLinks', '6.32.2'
(推薦)廣告pod 'Firebase/Analytics', '6.32.2'
實時數據庫(必需) firebase.framework
firebase_database.framework

pod 'Firebase/Database', '6.32.2'
遠程配置(必需) firebase.framework
firebase_remote_config.framework
(推薦) firebase_analytics.framework

pod 'Firebase/RemoteConfig', '6.32.2'
(推薦)廣告pod 'Firebase/Analytics', '6.32.2'

移動設置的其他信息

方法陷入困境

在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_auth
(必填) firebase_app
Cloud Firestore (alpha) 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 10.3.0測試了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

下一步