Firebase 实时数据库使用 NoSQL 云数据库存储和同步数据。数据在所有客户端之间实时同步,并在您的应用程序离线时保持可用。
在你开始之前
在使用Firebase Realtime Database之前,您需要:
注册您的 C++ 项目并将其配置为使用 Firebase。
如果您的 C++ 项目已经使用 Firebase,那么它已经针对 Firebase 进行了注册和配置。
将Firebase C++ SDK添加到您的 C++ 项目。
请注意,将 Firebase 添加到您的 C++ 项目涉及Firebase 控制台和您打开的 C++ 项目中的任务(例如,您从控制台下载 Firebase 配置文件,然后将它们移动到您的 C++ 项目中)。
创建数据库
导航到Firebase 控制台的实时数据库部分。系统会提示您选择一个现有的 Firebase 项目。遵循数据库创建工作流程。
为您的 Firebase 安全规则选择启动模式:
- 测试模式
适合开始使用移动和 Web 客户端库,但允许任何人读取和覆盖您的数据。测试后,请务必查看了解 Firebase 实时数据库规则部分。
要开始使用 Web、Apple 或 Android SDK,请选择测试模式。
- 锁定模式
拒绝来自移动和 Web 客户端的所有读取和写入。经过身份验证的应用程序服务器仍然可以访问您的数据库。
选择数据库的位置。
根据数据库的位置,新数据库的 URL 将采用以下形式之一:
DATABASE_NAME .firebaseio.com
(对于us-central1
中的数据库)DATABASE_NAME . REGION .firebasedatabase.app
(对于所有其他位置的数据库)
单击完成。
当您启用实时数据库时,它还会启用Cloud API Manager中的 API。
创建并初始化 firebase::App
在访问实时数据库之前,您需要创建并初始化firebase::App
。
包括firebase::App
的头文件:
#include "firebase/app.h"
安卓
创建firebase::App
,将 JNI 环境和对 Java Activity 的jobject
引用作为参数传递:
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 身份验证添加到您的应用程序以控制对数据库的访问。
下一步
了解如何为实时数据库构建数据结构。
准备启动您的应用程序:
- 在 Google Cloud Console 中为您的项目设置预算提醒。
- 监控 Firebase 控制台中的使用情况和计费仪表板,以全面了解您的项目在多个 Firebase 服务中的使用情况。您还可以访问实时数据库使用情况仪表板以获取更详细的使用信息。
- 查看Firebase 启动清单。
已知的问题
- 在桌面平台(Windows、Mac、Linux)上,Firebase C++ SDK 使用 REST 访问您的数据库。因此,您必须在桌面上声明与 Query::OrderByChild() 一起使用的索引,否则您的侦听器将失败。
- 实时数据库的桌面工作流版本不支持脱机或持久性。