Firebase предлагает два облачных, доступных для клиента решения для баз данных, которые поддерживают синхронизацию данных в реальном времени:
Cloud Firestore — новейшая база данных Firebase для разработки мобильных приложений. Он основывается на успехах базы данных реального времени с новой, более интуитивной моделью данных. Cloud Firestore также предлагает более богатые и быстрые запросы и масштабируется дальше, чем база данных реального времени.
База данных Realtime — это исходная база данных Firebase. Это эффективное решение с низкой задержкой для мобильных приложений, которым требуется синхронизация состояний клиентов в режиме реального времени.
Какую базу данных рекомендует Firebase?
Ваш выбор решения для базы данных будет зависеть от многих факторов, но когда дело касается определенных функций, мы можем порекомендовать, какая база данных подойдет именно вам.
Оба решения предлагают:
- SDK, ориентированные на клиента, без необходимости развертывания и обслуживания серверов.
- Обновления в реальном времени
- Уровень бесплатного пользования, а затем платите за то, что используете
Ключевые соображения
Помимо великолепных основных функций, общих для обеих баз данных, подумайте о том, как некоторые или все перечисленные ниже факторы повлияют на успех ваших приложений.
Роль базы данных | Мое приложение использует базу данных для... В первую очередь синхронизация данных с помощью базовых запросов. Если вам не нужны расширенные запросы, сортировка и транзакции, мы рекомендуем базу данных реального времени . Расширенные запросы, сортировка и транзакции. Если вам необходимо сложное взаимодействие с вашими данными, например, в приложениях электронной коммерции, мы рекомендуем Cloud Firestore . |
Операции с данными | Использование базы данных моего приложения выглядит так... Несколько ГБ или меньше данных, которые часто меняются. Если ваше приложение будет отправлять поток небольших обновлений, например, в приложении для цифровой доски, мы рекомендуем базу данных Realtime Database . От сотен ГБ до ТБ данных, которые читаются гораздо чаще, чем изменяются. Для очень больших наборов данных и при частой необходимости пакетных операций мы рекомендуем Cloud Firestore . |
Модель данных | Я предпочитаю структурировать свои данные как... Простое дерево JSON. Для неструктурированных данных JSON мы рекомендуем базу данных реального времени . Документы организованы в коллекции. Для структурированных документов и коллекций мы рекомендуем Cloud Firestore . |
Доступность | Мои потребности в доступности... Чрезвычайно высокая гарантия безотказной работы — 99,999%. Если доступность имеет первостепенное значение, например, в приложениях электронной коммерции, мы рекомендуем Cloud Firestore . Гарантия бесперебойной работы не менее 99,95%. Когда приемлема очень высокая, но не критическая доступность, мы рекомендуем использовать Cloud Firestore или Realtime Database . |
Автономные запросы к локальным данным | Моему приложению потребуется выполнять запросы на устройствах с ограниченным подключением или без него... Часто. Для расширенных возможностей запроса локальных данных, когда пользователь находится в автономном режиме, мы рекомендуем Cloud Firestore . Редко или никогда. Если вы ожидаете, что ваши пользователи будут постоянно находиться в сети, мы рекомендуем Cloud Firestore или Realtime Database . |
Какие еще важные вещи следует учитывать?
Поразмыслив над предыдущими ключевыми соображениями, вы, возможно, будете готовы выбрать базу данных . Если вы все еще взвешиваете «за» и «против», в этом разделе рассматриваются другие различия между Cloud Firestore и базой данных реального времени.
Модель данных
И база данных реального времени, и Cloud Firestore являются базами данных NoSQL.
База данных реального времени | Облачный пожарный магазин |
---|---|
Хранит данные в виде одного большого дерева JSON.
Узнайте больше о модели данных базы данных реального времени . | Хранит данные в виде коллекций документов.
Узнайте больше о модели данных Cloud Firestore . |
Поддержка в режиме реального времени и в автономном режиме
Оба имеют SDK реального времени, ориентированные на мобильные устройства, и оба поддерживают локальное хранилище данных для приложений, готовых к работе в автономном режиме.
База данных реального времени | Облачный пожарный магазин |
---|---|
Офлайн-поддержка клиентов Apple и Android. | Офлайн-поддержка для Apple, Android и веб-клиентов. |
Присутствие
Может быть полезно знать, когда клиент онлайн или офлайн. База данных Firebase Realtime может записывать состояние соединения клиента и предоставлять обновления каждый раз, когда состояние соединения клиента меняется.
База данных реального времени | Облачный пожарный магазин |
---|---|
Присутствие поддерживается. | Не поддерживается изначально. Вы можете использовать поддержку присутствия в базе данных реального времени, синхронизировав Cloud Firestore и базу данных реального времени с помощью облачных функций. См. раздел Создание присутствия в Cloud Firestore . |
Запрос
Извлекайте, сортируйте и фильтруйте данные из любой базы данных с помощью запросов.
База данных реального времени | Облачный пожарный магазин |
---|---|
Глубокие запросы с ограниченными возможностями сортировки и фильтрации .
| Индексированные запросы с составной сортировкой и фильтрацией .
|
Запись и транзакции
База данных реального времени | Облачный пожарный магазин |
---|---|
Основные операции записи и транзакций.
| Расширенные операции записи и транзакций.
|
Надежность и производительность
База данных реального времени | Облачный пожарный магазин |
---|---|
База данных реального времени — это региональное решение.
| Cloud Firestore — это региональное и мультирегиональное решение, которое автоматически масштабируется.
|
Масштабируемость
База данных реального времени | Облачный пожарный магазин |
---|---|
Масштабирование требует шардинга.
| Масштабирование происходит автоматически.
|
Безопасность
База данных реального времени | Облачный пожарный магазин |
---|---|
Язык каскадных правил, разделяющий авторизацию и проверку.
| Некаскадные правила, сочетающие авторизацию и проверку.
|
Цены
Оба решения доступны в тарифных планах Spark и Blaze .
База данных реального времени | Облачный пожарный магазин |
---|---|
Взимается плата только за пропускную способность и хранилище , но по более высокой ставке. Узнайте больше о тарифных планах базы данных реального времени . | В основном взимается плата за операции, выполняемые в вашей базе данных (чтение, запись, удаление) , а также, по более низкой ставке, за пропускную способность и хранилище. Cloud Firestore поддерживает ежедневные лимиты расходов для проектов App Engine, чтобы вы не превысили комфортные для вас расходы. Узнайте больше о тарифных планах Cloud Firestore . |
Использование Cloud Firestore и базы данных реального времени
Вы можете использовать обе базы данных в одном приложении или проекте Firebase. Обе базы данных NoSQL могут хранить одни и те же типы данных, и клиентские библиотеки работают аналогичным образом. Если вы решите использовать в своем приложении обе базы данных, помните об описанных выше различиях.
Узнайте больше о функциях, доступных как в базе данных Realtime , так и в Cloud Firestore .
Готовы выбрать базу данных?
Надеемся, это сравнение помогло вам выбрать решение для базы данных Firebase. Теперь вы можете узнать, как добавить базу данных в ваши проекты Firebase.
- Что касается Cloud Firestore , ознакомьтесь с разделом «Начало работы с Cloud Firestore» .
- Для базы данных реального времени прочтите раздел «Начало работы» для вашей платформы: Apple , Android , C++ , Unity , Web или REST .