Начало работы с Firebase Realtime Database для C++

Firebase Realtime Database хранит и синхронизирует данные с помощью облачной базы данных NoSQL. Данные синхронизируются между всеми клиентами в режиме реального времени и остаются доступными, когда приложение работает в офлайн-режиме.

Подготовка к работе

Чтобы использовать Firebase Realtime Database, необходимо:

  • Зарегистрируйте проект C++ и настройте его для использования Firebase.

    Если в проекте уже используется Firebase, можете пропустить этот шаг.

  • Добавьте Firebase C++ SDK в проект C++.

Обратите внимание, что для добавления Firebase в проект C++ нужно выполнить действия как в консоли Firebase, так и в вашем открытом проекте C++. Например, вам потребуется скачать файлы конфигурации Firebase из консоли, а затем переместить их в проект C++.

Создание базы данных

  1. В консоли Firebase выберите Databases & Storage (Базы данных и хранилище) > Realtime Database (База данных в реальном времени).

  2. Нажмите Create database (Создать базу данных).

  3. Выберите режим запуска для устройства "Firebase Security Rules":

    Режим тестирования

    Подходит для начала работы с клиентскими библиотеками для мобильных устройств и веб-клиентов, но позволяет любому пользователю читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом Правила Firebase Realtime Database.

    Чтобы начать работу с SDK для веб-сайтов, устройств Apple или Android, выберите тестовый режим.

    Режим блокировки

    Запрещает все операции чтения и записи для мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему могут получать доступ к базе данных.

  4. Выберите местоположение для базы данных.

    В зависимости от местоположения базы данных URL новой базы данных будет иметь один из следующих форматов:

    • DATABASE_NAME.firebaseio.com (для баз данных в us-central1)

    • DATABASE_NAME.REGION.firebasedatabase.app (для баз данных во всех остальных местоположениях)

  5. Нажмите Готово.

При включении Realtime Database также включается API в Cloud API Manager.

Как создать и инициализировать firebase::App

Прежде чем вы сможете получить доступ к Realtime Database, вам нужно создать и инициализировать firebase::App.

Добавьте заголовочный файл для firebase::App:

#include "firebase/app.h"

Android

Создайте объект firebase::App, передав указатель на среду JNI и ссылку jobject на объект activity в Java в виде аргументов:

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 Realtime Database C++ SDK.

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

Если вы решили использовать общедоступный доступ для своих правил, вы можете перейти к разделам, посвященным сохранению и извлечению данных.

Как настроить ограниченный доступ

Если вы не хотите использовать общедоступный режим, добавьте в приложение Firebase Authentication, чтобы управлять доступом к базе данных.

Дальнейшие действия

Известные проблемы

  • На компьютерах (Windows, Mac, Linux) SDK Firebase C++ использует REST для доступа к базе данных. Поэтому вам необходимо объявить индексы, которые вы используете с Query::OrderByChild() на компьютере, иначе ваши прослушиватели не будут работать.
  • Версия Realtime Database для компьютеров не поддерживает офлайн-режим и сохранение данных.