获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

将 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 13.3.1 或更高版本
    • CocoaPods 1.10.0 或更高版本
  • 确保您的项目针对以下平台版本或更高版本:

    • iOS 11
  • 设置物理 iOS 设备或使用 iOS 模拟器运行您的应用程序。

  • 使用您的 Google 帐户登录 Firebase

第 2 步:创建 Firebase 项目

在将 Firebase 添加到 C++ 项目之前,您需要创建一个 Firebase 项目以连接到您的 C++ 项目。请访问了解 Firebase 项目以了解有关 Firebase 项目的更多信息。

第 3 步:向 Firebase 注册您的应用

要在您的 Apple 应用中使用 Firebase,您需要在您的 Firebase 项目中注册您的应用。注册您的应用程序通常称为将您的应用程序“添加”到您的项目中。

  1. 转到Firebase 控制台

  2. 在项目概览页面的中心,单击iOS+图标以启动设置工作流程。

    如果您已将应用添加到 Firebase 项目,请点击添加应用以显示平台选项。

  3. 捆绑包 ID字段中输入您应用的捆绑包 ID。

  4. (可选)输入其他应用信息:应用昵称应用商店ID

  5. 点击注册应用

第 4 步:添加 Firebase 配置文件

  1. 单击下载 GoogleService-Info.plist以获取您的 Firebase Apple 平台配置文件。

  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 的Project Navigator窗格中(默认情况下是最左侧的窗格;或单击 Xcode 左上角的文件图标)。

    1. 添加 Firebase C++ 框架firebase.framework ,这是使用任何 Firebase 产品所必需的。

    2. 为您要使用的每个 Firebase 产品添加框架。例如,要使用 Firebase 身份验证,请添加firebase_auth.framework

  4. 返回 Firebase 控制台,在设置工作流程中,单击Next

  5. 如果您添加了 Analytics,请运行您的应用以向 Firebase 发送您已成功集成 Firebase 的验证。否则,您可以跳过此验证步骤。

    您的设备日志将显示初始化已完成的 Firebase 验证。如果您在具有网络访问权限的模拟器上运行您的应用, Firebase 控制台会通知您您的应用连接已完成。

你都准备好了!您的 C++ 应用已注册并配置为使用 Firebase 产品。

可用库

参考文档和我们在GitHub 上的开源 SDK 版本中了解有关 C++ Firebase 库的更多信息。

适用于 iOS 的可用库

请注意,适用于 Android 的 C++ 库列在此设置页面的 Android 版本中

每个 Firebase 产品都有不同的依赖项。请务必将所需 Firebase 产品的所有列出的依赖项添加到您的 Podfile 和 C++ 项目中。

Firebase 产品框架和 Pod
AdMob (必需) firebase.framework
firebase_admob.framework
(必需) firebase_analytics.framework

pod 'FirebaseAdMob', '10.1.0'
(必需) pod 'FirebaseAnalytics', '10.1.0'
分析(必需) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.1.0'
验证(必需) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.1.0'
云防火墙(必需) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.1.0'
pod 'FirebaseAuth', '10.1.0'
云函数(必需) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.1.0'
云消息传递(必需) firebase.framework
firebase_messaging.framework
(推荐) firebase_analytics.framework

pod 'FirebaseMessaging', '10.1.0'
(推荐) pod 'FirebaseAnalytics', '10.1.0'
云储存(必需) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.1.0'
动态链接(必需) firebase.framework
firebase_dynamic_links.framework
(推荐) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.1.0'
(推荐) pod 'FirebaseAnalytics', '10.1.0'
实时数据库(必需) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.1.0'
远程配置(必需) firebase.framework
firebase_remote_config.framework
(推荐) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.1.0'
(推荐) pod 'FirebaseAnalytics', '10.1.0'

移动设置的附加信息

方法混搭

在 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
云防火墙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 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

下一步