Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

将 Firebase 添加到您的 C++ 项目

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

使用我们的 Firebase C++ SDK 为您的 C++ 游戏提供动力,这些 SDK 在适用于 iOS 和 Android 的 Firebase 之上提供了一个 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. bundle ID字段中输入您应用程序的 bundle ID。

  4. (可选)输入其他应用信息:应用昵称App Store 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,请创建一个:

      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 控制台,在设置工作流程中,单击下一步

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

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

一切就绪!您的 C++ 应用已注册并配置为使用 Firebase 产品。

可用库

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

适用于 iOS 的可用库

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

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

火力地堡产品框架和 Pod
AdMob (必需) firebase.framework
firebase_admob.framework
(必需) firebase_analytics.framework

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

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

pod 'FirebaseAuth', '10.2.0'
云端 Firestore (必需) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.2.0'
pod 'FirebaseAuth', '10.2.0'
云端功能(必需) firebase.framework
firebase_functions.framework

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

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

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

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

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

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

移动设置的附加信息

方法调配

在 iOS 上,某些应用程序事件(例如打开 URL 和接收通知)需要您的应用程序委托来实现特定的方法。例如,接收通知可能需要您的应用程序委托来实现application:didReceiveRemoteNotification: 。因为每个 iOS 应用程序都有自己的应用程序委托,所以 Firebase 使用method 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 上的独立桌面构建中使用。

火力地堡产品库引用(使用 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
云端 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

下一步