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. | |
Присутствие
Может быть полезно знать, находится ли клиент в сети или нет. 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 поддерживает лимиты ежедневных расходов для проектов App Engine , чтобы вы не превышали приемлемый для себя уровень расходов. Узнайте больше о тарифных планах 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 .