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 (База данных в реальном времени).
Нажмите Create database (Создать базу данных).
Выберите режим запуска для устройства "Firebase Security Rules":
- Режим тестирования
Подходит для начала работы с клиентскими библиотеками для мобильных устройств и веб-клиентов, но позволяет любому пользователю читать и перезаписывать ваши данные. После тестирования обязательно ознакомьтесь с разделом Правила Firebase Realtime Database.
Чтобы начать работу с SDK для веб-сайтов, устройств Apple или Android, выберите тестовый режим.
- Режим блокировки
Запрещает все операции чтения и записи для мобильных и веб-клиентов. Ваши аутентифицированные серверы приложений по-прежнему могут получать доступ к базе данных.
Выберите местоположение для базы данных.
В зависимости от местоположения базы данных 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, Mac, Linux) SDK Firebase C++ использует REST для доступа к базе данных. Поэтому вам необходимо объявить индексы, которые вы используете с Query::OrderByChild() на компьютере, иначе ваши прослушиватели не будут работать.
- Версия Realtime Database для компьютеров не поддерживает офлайн-режим и сохранение данных.