Firebase Realtime Database хранит и синхронизирует данные с помощью облачной базы данных NoSQL. Данные синхронизируются между всеми клиентами в режиме реального времени и остаются доступными, когда приложение переходит в офлайн-режим.
Подготовка к работе
Чтобы использовать Firebase Realtime Database, вам необходимо:
Зарегистрируйте проект C++ и настройте его для использования Firebase.
Если в проекте уже используется Firebase, можете пропустить этот шаг.
Добавьте Firebase C++ SDK в свой проект C++.
Обратите внимание, что для добавления Firebase в проект C++ нужно выполнить действия как в консоли Firebase, так и в вашем открытом проекте C++. Например, вам потребуется скачать файлы конфигурации Firebase из консоли, а затем переместить их в проект C++.
Как создать базу данных
В консоли Firebase выберите Databases & Storage (Базы данных и хранилище) > Realtime Database (База данных реального времени).
Нажмите Создать базу данных.
Выберите режим запуска для Firebase Security Rules:
- Тестовый режим
Подходит для начала работы с клиентскими библиотеками для мобильных устройств и сайтов, но позволяет любому пользователю читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом Общие сведения о правилах базы данных Firebase Realtime Database.
Чтобы начать работу с веб-версией, Apple или Android SDK, выберите testmode.
- Режим блокировки
Запрещает все операции чтения и записи для мобильных и веб-клиентов. Серверы аутентифицированных приложений по-прежнему смогут получать доступ к вашей базе данных.
Выберите местоположение для базы данных.
В зависимости от местоположения базы данных URL новой базы данных будет иметь один из следующих форматов:
(для баз данных вDATABASE_NAME.firebaseio.comus-central1) (для баз данных в других местоположениях)DATABASE_NAME.REGION.firebasedatabase.app
Нажмите Готово.
При включении 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, чтобы контролировать доступ к базе данных.
Дальнейшие действия
Узнайте, как структурировать данные для Realtime Database.
Подготовьтесь к запуску приложения:
- Настройте оповещения о бюджете для своего проекта в консоли Google Cloud.
- Отслеживайте панель управления "Использование и оплата" в консоли Firebase, чтобы получать общую информацию об использовании проекта в разных сервисах Firebase. Более подробную информацию об использовании можно найти на панели управления Realtime Database Использование.
- Изучите контрольный список запуска Firebase.
Известные проблемы
- На платформах для компьютеров (Windows, macOS, Linux) SDK Firebase C++ использует REST для доступа к вашей базе данных. Поэтому вам необходимо объявить используемые индексы с помощью Query::OrderByChild() на компьютере, иначе ваши прослушиватели не будут работать.
- Версия Realtime Database для компьютеров не поддерживает офлайн-режим и сохранение данных.