Firebase предлагает два облачных решения для баз данных, доступных клиенту, которые поддерживают синхронизацию данных в реальном времени:
Cloud Firestore - это новейшая база данных Firebase для разработки мобильных приложений. Он основан на успехах Realtime Database с новой, более интуитивной моделью данных. Cloud Firestore также предлагает более сложные и быстрые запросы и масштабируется дальше, чем база данных Realtime.
Realtime Database - это исходная база данных Firebase. Это эффективное решение с малой задержкой для мобильных приложений, которым требуется синхронизация состояний клиентов в реальном времени.
Какую базу данных рекомендует Firebase?
Ваш выбор решения для базы данных будет зависеть от многих факторов, но когда дело доходит до определенных функций, мы можем порекомендовать, какая база данных подходит вам.
Оба решения предлагают:
- Клиентские SDK без серверов для развертывания и обслуживания
- Обновления в реальном времени
- Уровень бесплатного пользования, а затем платите за то, что используете
Ключевые соображения
Помимо отличных основных функций, общих для обеих баз данных, подумайте о том, как какие-либо или все перечисленные ниже соображения повлияют на успех ваших приложений.
Роль базы данных | Мое приложение использует базу данных для ... В первую очередь синхронизация данных с базовыми запросами. Если вам не нужны расширенные запросы, сортировка и транзакции, мы рекомендуем Realtime Database . Расширенные запросы, сортировка и транзакции. Если вам нужно сложное взаимодействие с вашими данными, например, в приложениях электронной коммерции, мы рекомендуем Cloud Firestore . |
Операции с данными | Использование базы данных моего приложения выглядит так ... Несколько ГБ или меньше данных, которые часто меняются. Если ваше приложение будет отправлять поток крошечных обновлений, например, в приложении для цифровой доски, мы рекомендуем Realtime Database . Сотни ГБ в ТБ данных, которые читаются гораздо чаще, чем меняются. Для очень больших наборов данных и когда часто требуются пакетные операции, мы рекомендуем Cloud Firestore . |
Модель данных | Я предпочитаю структурировать свои данные как ... Простое дерево JSON. Для неструктурированных данных JSON мы рекомендуем Realtime Database . Документы организованы в коллекции. Для структурированных документов и коллекций мы рекомендуем 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 и Realtime Database.
Модель данных
И Realtime Database, и Cloud Firestore являются базами данных NoSQL.
База данных в реальном времени | Cloud Firestore |
---|---|
Хранит данные как одно большое дерево JSON.
Узнайте больше о модели данных Realtime Database . | Хранит данные в виде коллекций документов.
Узнайте больше о модели данных Cloud Firestore . |
Поддержка в реальном времени и офлайн
У обоих есть SDK для мобильных устройств в реальном времени, и оба поддерживают локальное хранилище данных для приложений, готовых к работе в автономном режиме.
База данных в реальном времени | Cloud Firestore |
---|---|
Автономная поддержка клиентов iOS и Android. | Автономная поддержка iOS, Android и веб-клиентов. |
Присутствие
Может быть полезно знать, когда клиент находится в сети или офлайн. База данных Firebase Realtime может записывать статус подключения клиента и предоставлять обновления каждый раз, когда состояние подключения клиента изменяется.
База данных в реальном времени | Cloud Firestore |
---|---|
Присутствие поддерживается. | Не поддерживается изначально. Вы можете использовать поддержку присутствия в базе данных Realtime, синхронизируя Cloud Firestore и базу данных Realtime с помощью облачных функций. См. Раздел " Присутствие сборки в Cloud Firestore" . |
Запрос
Извлекайте, сортируйте и фильтруйте данные из любой базы данных с помощью запросов.
База данных в реальном времени | Cloud Firestore |
---|---|
Глубокие запросы с ограниченной функциональностью сортировки и фильтрации .
| Индексированные запросы с составной сортировкой и фильтрацией .
|
Записи и транзакции
База данных в реальном времени | Cloud Firestore |
---|---|
Основные операции записи и транзакции.
| Расширенные операции записи и транзакции.
|
Надежность и производительность
База данных в реальном времени | Cloud Firestore |
---|---|
База данных Realtime - это региональное решение.
| Cloud Firestore - это региональное решение для нескольких регионов, которое автоматически масштабируется.
|
Масштабируемость
База данных в реальном времени | Cloud Firestore |
---|---|
Для масштабирования требуется сегментирование.
| Масштабирование автоматическое.
|
Безопасность
База данных в реальном времени | Cloud Firestore |
---|---|
Язык каскадных правил, разделяющий авторизацию и проверку.
| Некаскадные правила, сочетающие авторизацию и проверку.
|
Ценообразование
Оба решения доступны в тарифных планах Spark и Blaze .
База данных в реальном времени | Cloud Firestore |
---|---|
Плата только за пропускную способность и хранилище , но по более высокой ставке. Узнайте больше о тарифных планах Realtime Database . | Плата в основном за операции, выполняемые в вашей базе данных (чтение, запись, удаление) и, с меньшей скоростью, за пропускную способность и хранилище. Cloud Firestore поддерживает ежедневныелимиты расходов для проектов App Engine, чтобы вы не превышали те расходы, которые вам удобны. Подробнее о тарифных планах Cloud Firestore . |
Использование Cloud Firestore и базы данных в реальном времени
Вы можете использовать обе базы данных в одном приложении или проекте Firebase. Обе базы данных NoSQL могут хранить одни и те же типы данных, и клиентские библиотеки работают одинаково. Помните о различиях, описанных выше, если вы решите использовать обе базы данных в своем приложении .
Узнайте больше о функциях, доступных как в Realtime Database, так и в Cloud Firestore .
Готовы выбрать базу данных?
Надеюсь, это сравнение помогло вам выбрать решение для базы данных Firebase. Теперь вы можете узнать, как добавить базу данных в свои проекты Firebase.