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