Firebase предлагает две облачные базы данных документов, доступные клиентам. Новым клиентам мы рекомендуем начать с Cloud Firestore:
Cloud Firestore – это рекомендуемая база данных документов корпоративного уровня, совместимая с JSON. Ей доверяют более 600 000 разработчиков. Она подходит для приложений со сложными моделями данных, которым требуются возможности запросов, масштабируемость и высокая доступность. Она также обеспечивает синхронизацию клиентов с низкой задержкой и доступ к данным в офлайн-режиме.
Realtime Database – это классическая база данных Firebase JSON. Она подходит для приложений с простыми моделями данных, которым требуется простой поиск и синхронизация с низкой задержкой и ограниченной масштабируемостью.
Что ещё важно учитывать?
После того как вы обдумали предыдущие ключевые соображения, вы можете быть готовы выбрать базу данных. Если вы все ещё взвешиваете преимущества и недостатки, в этом разделе рассматриваются другие различия между Cloud Firestore и Realtime Database.
Модель данных
Realtime Database и Cloud Firestore – это базы данных NoSQL.
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
Хранит данные в виде коллекций документов.
Подробнее о модели данных Cloud Firestore… |
Данные хранятся в виде одного большого дерева JSON.
Подробнее о модели данных Realtime Database… |
|
Поддержка в режиме реального времени и офлайн
Оба сервиса имеют SDK, ориентированные на мобильные устройства и работающие в реальном времени, и оба поддерживают локальное хранилище данных для приложений, готовых к работе в автономном режиме.
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
| Поддержка офлайн-режима для клиентов Apple, Android и веб-клиентов. | Поддержка офлайн-режима для клиентов Apple и Android. | |
Присутствие
Иногда полезно знать, когда клиент находится в сети или офлайн. Firebase Realtime Database может записывать статус подключения клиента и предоставлять обновления каждый раз, когда он меняется.
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
| Не поддерживается. Вы можете расширить поддержку статуса присутствия в Realtime Database, синхронизировав Cloud Firestore и Realtime Database с помощью Cloud Functions. Подробнее о том, как настроить статус присутствия в Cloud Firestore… | Поддерживается определение присутствия. | |
Запросы
Извлекать, сортировать и фильтровать данные из любой базы данных с помощью запросов.
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
Проиндексированные запросы с составной сортировкой и фильтрацией.
|
Глубокие запросы с ограниченными возможностями сортировки и фильтрации.
|
|
Записи и транзакции
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
Расширенные операции записи и транзакций.
|
Базовые операции записи и транзакции.
|
|
Надежность и производительность
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
Cloud Firestore – это региональное и мультирегиональное решение, которое масштабируется автоматически.
|
Realtime Database – это региональное решение.
|
|
Время работы
| Cloud Firestore | [ ПРЕДПОЧТИТЕЛЬНО ] | Realtime Database |
|---|---|---|
Очень высокий показатель времени работы.
|
Высокое время безотказной работы.
|
|
Масштабируемость
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
Масштабирование выполняется автоматически.
|
Для масштабирования требуется сегментирование.
|
|
Безопасность
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
Некаскадные правила, которые объединяют авторизацию и проверку.
|
Язык каскадных правил, который разделяет авторизацию и проверку.
|
|
Цены
Оба решения доступны в тарифных планах Spark и Blaze.
| Cloud Firestore | [ РЕКОМЕНДУЕТСЯ ] | Realtime Database |
|---|---|---|
| Плата взимается в основном за операции, выполняемые в базе данных (чтение, запись, удаление), а также за пропускную способность и хранение.
В Cloud Firestore можно настроить месячный бюджет и оповещения, чтобы не тратить больше, чем вы можете себе позволить. Подробнее о тарифных планах Cloud Firestore… |
Плата взимается только за пропускную способность и хранение, но по более высокой ставке.
Подробнее о тарифных планах Realtime Database… |
|
Используйте и Cloud Firestore, и Realtime Database
Обе базы данных можно использовать в одном приложении или проекте Firebase. Обе базы данных NoSQL могут хранить одни и те же типы данных, а клиентские библиотеки работают аналогичным образом. Если вы решите использовать обе базы данных в своем приложении, учитывайте описанные выше различия.
Подробнее о функциях, доступных в Realtime Database и Cloud Firestore…
Готовы выбрать базу данных?
Надеемся, что это сравнение помогло вам выбрать решение для базы данных Firebase. Теперь вы можете узнать, как добавить базу данных в проекты Firebase.
- Если вы используете Cloud Firestore, ознакомьтесь со статьей Начало работы с Cloud Firestore.
- Чтобы узнать, как начать работу с Realtime Database, прочитайте статью для вашей платформы: Apple, Android, C++, Unity, Web или REST.