Firebase 实时数据库使用入门 (C++)

Firebase 实时数据库使用 NoSQL 云端数据库存储和同步数据。数据会实时同步到所有客户端,而且即便您的应用处于离线状态,数据也仍然可供使用。

准备工作

在使用 Firebase 实时数据库之前,您需要:

  • 注册 C++ 项目并将其配置为使用 Firebase。

    如果您的 C++ 项目已在使用 Firebase,则表示您已注册该 C++ 项目并已将其配置为使用 Firebase。

  • 请务必在您的项目级 build.gradle 文件中的 buildscriptallprojects 部分添加 Google 的 Maven 代码库。

  • Firebase C++ SDK 添加到您的 C++ 项目。

请注意,将 Firebase 添加到 C++ 项目涉及 Firebase 控制台和打开的 C++ 项目中的任务(例如,您从控制台下载 Firebase 配置文件,然后将它们移动到 C++ 项目中)。

创建数据库

  1. 如果您还没有 Firebase 项目,请创建一个:在 Firebase 控制台中,点击添加项目,然后按照屏幕上的说明创建 Firebase 项目或将 Firebase 服务添加到现有 GCP 项目。

  2. 转到 Firebase 控制台数据库部分。系统将会提示您选择现有 Firebase 项目。按照数据库创建工作流操作。

  3. 为您的 Firebase 安全规则选择一个开始模式:

    测试模式

    此模式适合刚开始使用移动和 Web 客户端库的用户,但会允许任何人读取和覆盖您的数据。测试完成后,请务必查看了解 Firebase 实时数据库规则部分。

    如需开始使用 Web、iOS 或 Android SDK,请选择测试模式。

    锁定模式

    拒绝来自移动和 Web 客户端的所有读写操作。经过身份验证的应用服务器仍然可以访问您的数据库。

  4. 点击完成

如果启用实时数据库,也就在 Cloud API 管理器中启用了相应 API。

创建并初始化 firebase::App

您需要先创建并初始化 firebase::App,然后才能访问实时数据库。

包括 firebase::App 的头文件:

#include "firebase/app.h"

Android

创建 firebase::App,将 JNI 环境和 jobject 引用以参数形式传递到 Java Activity:

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);

iOS

创建 firebase::App

app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));

访问 firebase::database::Database 类

firebase::database::Database 是 Firebase 实时数据库 C++ SDK 的入口点。

::firebase::database::Database *database = ::firebase::database::Database::GetInstance(app);

如果您已为您的规则选择开放公共访问权限,则可转至有关保存和检索数据的部分。

设置受限访问

如果不想开放公共访问权限,您可在应用中添加 Firebase 身份验证来控制对数据库的访问权限。

后续步骤

已知问题

  • 在桌面平台(Windows、Mac、Linux)上,Firebase C++ SDK 使用 REST 访问您的数据库。因此,您必须在桌面上使用 Query::OrderByChild() 声明您使用的索引,否则您的侦听器将会失败。
  • 桌面工作流版实时数据库不支持离线或持久化。