Начало работы с 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. Нажмите Создать базу данных.

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

    Тестовый режим

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

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

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

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

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