Firebase Realtime Database — облачная NoSQL база данных от Google с синхронизацией данных в реальном времени через WebSocket. Данные хранятся как единое JSON-дерево; изменения в любом узле мгновенно (< 100 мс) доставляются всем подписанным клиентам на iOS, Android, Web и Flutter. Это делает Realtime Database подходящей для чатов, live-дашбордов, совместного редактирования и многопользовательских игр — без написания серверной логики.
Как работает
Клиент подключается через Firebase SDK и подписывается на узел дерева: ref('/chats/room1/messages').on('value', callback). При записи данных любым клиентом Firebase уведомляет все подписанные клиенты. Это push-модель: данные приходят без polling. Для оффлайн-работы SDK кэширует данные локально и синхронизирует при восстановлении соединения.
Правила безопасности (.read, .write, .validate) описываются в JSON: кто может читать и изменять каждый узел дерева. Аутентификация через Firebase Auth: Google OAuth, Email/Password, GitHub, Twitter, Anonymous.
Тарификация и ограничения (Spark / Blaze)
- Spark (бесплатно): 1 ГБ хранилища, 10 ГБ/мес трафика, 100 одновременных соединений
- Blaze (pay-as-you-go): $5/ГБ хранилища/мес, $1/ГБ трафика. Без лимита соединений.
- Каждая база данных — одна географическая зона (us-central1, europe-west1 и др.); нет multiregion как у Blob storage
История
Realtime Database создана компанией Envolve в 2011 году как chat API. В 2012 году основатели Джеймс Тамплин (James Tamplin) и Эндрю Ли (Andrew Lee) переработали продукт в платформу для realtime-данных и основали Firebase. В 2014 году Google приобрела Firebase. В 2017 году Google представила Cloud Firestore — архитектурно более масштабируемую замену с коллекциями/документами вместо единого JSON-дерева. Оба продукта существуют параллельно; для новых проектов Google рекомендует Firestore.
Realtime Database vs Cloud Firestore
| Параметр | Realtime Database | Cloud Firestore |
|---|---|---|
| Модель данных | JSON-дерево | Коллекции / документы |
| Масштабирование | Одна база, 1 регион | Автошардирование, multiregion |
| Сложные запросы | Ограниченно (один фильтр) | Compound queries, индексы |
| Оффлайн | Да | Да |
| Цена хранилища | $5/ГБ/мес | $0.18/100K операций чтения |
На что обращать внимание
Firebase Realtime Database — полностью управляемый SaaS: серверная инфраструктура не нужна. Для небольших проектов с realtime-синхронизацией это альтернатива традиционному хостингу с VPS, Node.js и WebSocket-сервером. Проблемы Realtime Database при масштабировании: единое JSON-дерево создаёт «горячие точки» при высоком параллельном доступе к одному узлу. Правила безопасности легко написать некорректно — публичный read/write открывает базу для чтения/записи всем. Всегда тестируй правила через Firebase Rules Playground перед деплоем.
Firebase Realtime Database vs Firestore
| Параметр | Realtime Database | Firestore |
|---|---|---|
| Модель данных | Одно JSON-дерево | Коллекции и документы |
| Масштабирование | Ограниченное (одна БД) | Автоматическое, горизонтальное |
| Запросы | Одноуровневые, ограниченные | Сложные, составные индексы |
| Multiregion | Нет | Да |
| Цена за операцию | По трафику (ГБ) | По операциям (чтения/записи/удаления) |
| Рекомендуется для | Простые realtime-данные, малые проекты | Большинство production-приложений |
Практическое применение в хостинге
Firebase Realtime Database работает как Backend-as-a-Service (BaaS) — собственный VPS или Node.js-сервер не нужен для базовых realtime-приложений. SDK автоматически управляет WebSocket-соединением, повторными подключениями и оффлайн-кэшем. Для проектов с требованием хранения данных в России (152-ФЗ) Firebase не подходит — серверы в РФ отсутствуют.