將 Firebase 添加到您的 C++ 項目

使用我們的 Firebase C++ SDK 為您的 C++ 遊戲提供動力,這些 SDK 在 Firebase 之上為 iOS 和 Android 提供 C++ 接口。

完全從您的 C++ 代碼訪問 Firebase,而無需編寫任何平台原生代碼。 Firebase SDK 還將 Firebase 使用的許多特定於語言的習慣用法轉換為 C++ 開發人員更熟悉的界面。

了解我們與火力地堡您的遊戲了電源的更多信息,火力地堡遊戲頁面

已將 Firebase 添加到您的 C++ 項目中?請確保您正在使用最新版本的的火力地堡C ++ SDK

先決條件

  • 安裝以下內容:

    • Xcode 12 或更高版本
    • CocoaPods 1.10.0 或更高版本
  • 確保您的項目面向 iOS 10 或更高版本。

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

  • 登錄到火力地堡使用您的谷歌帳戶。

第2步:創建一個火力地堡項目

在將 Firebase 添加到 C++ 項目之前,您需要創建一個 Firebase 項目以連接到您的 C++ 項目。參觀了解火力地堡項目,詳細了解項目的火力地堡。

第3步:註冊與火力地堡您的應用程序

擁有 Firebase 項目後,您可以向其中添加您的 iOS 應用。

參觀了解火力地堡項目,詳細了解最佳實踐和注意事項添加應用到火力地堡項目,包括如何處理多個構建變種。

  1. 轉至火力地堡控制台

  2. 在項目概述頁面的中心,點擊iOS圖標( )啟動安裝工作流程。

    如果您已經添加的應用程序到你的火力地堡項目,單擊添加應用程序,以顯示平台的選擇。

  3. iOS系結ID字段中輸入您的應用程序的包ID。

  4. (可選)輸入其他應用程序的信息:應用程序的暱稱App Store的ID。

  5. 點擊註冊應用

第4步:添加火力地堡配置文件

  1. 點擊下載GoogleService-Info.plist中獲得你的火力地堡的iOS配置文件。

  2. 在 IDE 中打開 C++ 項目,然後將配置文件拖到 C++ 項目的根目錄中。

  3. 如果出現提示,請選擇將配置文件添加到所有目標。

您已完成 Firebase 控制台中的設置任務。繼續添加火力地堡C ++軟件開發工具包以下。

步驟5:添加火力地堡C ++的SDK

本節中的步驟是如何添加一個例子支持火力地堡的產品給您的火力地堡C ++項目。

  1. 下載火力地堡C ++ SDK ,然後解壓縮SDK方便的地方。

    Firebase C++ SDK 不是特定於平台的,但它包含特定於平台的庫。

  2. 添加火力地堡豆莢從解壓後的SDK。

    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. 安裝莢,然後打開.xcworkspace在Xcode文件。

      pod install
      open your-app.xcworkspace

  3. 添加火力地堡框架從解壓後的SDK。

    添加這些框架,最簡單的方法通常是從拖他們Finder窗口直接進入Xcode的項目導航窗格(遠左窗格中,默認情況下;或點擊文件圖標左上角的Xcode)。

    1. 添加火力地堡C ++框架firebase.framework ,這是需要使用任何火力地堡產物。

    2. 為您要使用的每個 Firebase 產品添加框架。例如,使用火力地堡驗證,添加firebase_auth.framework

  4. 早在火力地堡控制台,在設置工作流程,然後單擊下一步

  5. 如果您添加了 Analytics,請運行您的應用以向 Firebase 發送您已成功集成 Firebase 的驗證。否則,您可以跳過此驗證步驟。

    您的設備日誌將顯示初始化已完成的 Firebase 驗證。如果你跑了有網絡接入的仿真應用程式後, 火力地堡控制台你,通知你的應用程序連接完成。

你都準備好了!您的 C++ 應用已註冊並配置為使用 Firebase 產品。

可用庫

了解更多關於在C ++庫火力地堡的參考文檔,並在我們的開源SDK發布的GitHub

適用於 iOS 的可用庫

需要注意的是C ++的Android庫對上市這個設置頁面的Android版本

每個 Firebase 產品都有不同的依賴項。請務必將所需 Firebase 產品的所有列出的依賴項添加到您的 Podfile 和 C++ 項目中。

Firebase 產品框架和 Pod
廣告(所需的) firebase.framework
firebase_admob.framework
(所需的) firebase_analytics.framework

pod 'Firebase/AdMob', '8.2.0'
(必需) pod 'Firebase/Analytics', '8.2.0'
分析(所需的) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '8.2.0'
驗證(所需的) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '8.2.0'
雲公司的FireStore (測試版) (所需的) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '8.2.0'
pod 'Firebase/Auth', '8.2.0'
雲功能(所需的) firebase.framework
firebase_functions.framework

pod 'Firebase/Functions', '8.2.0'
雲消息(所需的) firebase.framework
firebase_messaging.framework
(推薦) firebase_analytics.framework

pod 'Firebase/Messaging', '8.2.0'
(推薦) pod 'Firebase/Analytics', '8.2.0'
雲儲存(所需的) firebase.framework
firebase_storage.framework

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

pod 'Firebase/DynamicLinks', '8.2.0'
(推薦) pod 'Firebase/Analytics', '8.2.0'
實時數據庫(所需的) firebase.framework
firebase_database.framework

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

pod 'Firebase/RemoteConfig', '8.2.0'
(推薦) pod 'Firebase/Analytics', '8.2.0'

移動設置的附加信息

方法調配

在 iOS 上,某些應用程序事件(例如打開 URL 和接收通知)需要您的應用程序委託來實現特定方法。例如,接收通知,可能需要您的應用程序代理來實現application:didReceiveRemoteNotification:因為每個iPhone應用程序都有其自己的應用程序委託,火力地堡使用方法交叉混合,其允許更換一個方法與其他的,附上自己的處理程序除了任何你可能已經實現。

動態鏈接和雲消息傳遞庫需要使用方法 swizzling 將處理程序附加到應用程序委託。如果您使用這些火力地堡的產品,在加載時,將火力地堡的識別您AppDelegate類和調配所需的方法到它,鏈接回調到您現有的方法實現。

建立一個桌面工作流程(測試版

創建遊戲時,通常先在桌面平台上測試遊戲,然後再在移動設備上進行部署和測試,然後再進行開發。為了支持這個流程,我們提供了火力地堡C ++軟件開發工具包的子集,它可以在Windows,MacOS的,Linux和從C ++中的編輯器中運行。

  1. 對於桌面工作流,您需要完成以下操作:

    1. 為 CMake 配置 C++ 項目。
    2. 創建 Firebase 項目
    3. 向 Firebase 註冊您的應用(iOS 或 Android)
    4. 添加移動平台 Firebase 配置文件
  2. 創建火力地堡配置文件的桌面版本:

    • 如果添加了Android google-services.json文件-當你運行你的應用程序,火力地堡位於該移動文件,然後自動生成一個桌面火力地堡配置文件( google-services-desktop.json )。

    • 如果添加了iOS GoogleService-Info.plist文件-在你運行你的應用程序,你需要這個移動文件轉換到桌面火力地堡的配置文件。要轉換的文件,運行在相同的目錄中的以下命令GoogleService-Info.plist文件:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    此桌面配置文件包含您在 Firebase 控制台設置工作流程中輸入的 C++ 項目 ID。參觀了解火力地堡項目了解更多有關配置文件。

  3. 將 Firebase SDK 添加到您的 C++ 項目。

    下面的步驟用作如何添加任何一個例子支持火力地堡產品到C ++項目。在本示例中,我們將逐步添加 Firebase 身份驗證和 Firebase 實時數據庫。

    1. 您設置FIREBASE_CPP_SDK_DIR環境變量解壓的火力地堡C ++ SDK的位置。

    2. 為了您的項目CMakeLists.txt文件,添加以下內容,其中包括庫,為您要使用的火力地堡產品。例如,要使用 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++ 應用程序。

可用庫(桌面)

的火力地堡C ++ SDK包括桌面工作流支持為特徵的子集,使火力地堡的某些部分在獨立的桌面使用建立在Windows,MacOS和Linux操作系統。

Firebase 產品庫參考(使用 CMake)
驗證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 vs 多線程 DLL /MD
  • 目標:發布與調試

請注意,以下庫已使用 Visual Studio 2015 和 2017 進行測試。

在 Windows 上構建 C++ 桌面應用程序時,將以下 Windows SDK 庫鏈接到您的項目。有關更多信息,請查閱您的編譯器文檔。

Firebase C++ 庫Windows SDK 庫依賴項
驗證advapi32, ws2_32, crypt32
雲防火牆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 12 進行了測試。

在 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

下一步