В чем разница между Cloud Firestore и базой данных Firebase Realtime?

252

Google только что выпустил Cloud Firestore, свою новую базу данных документов для приложений.

Я читал документацию, но не вижу большого различия между Firestore и Firebase DB.

Суть в том, что Firestore использует документы и коллекции, которые позволяют легко использовать запросы по сравнению с Firebase, которая является традиционной базой данных noSQL с базой JSON.

Я хотел бы узнать немного больше об их различиях, об использовании или о том, пришел ли Firestore на замену Firebase DB?

Франсиско Дурдин Гарсия
источник
1
Чтение быстрее в Firestore, запись быстрее в базе данных реального времени Firebase
DragonFire

Ответы:

381

Поэтому я написал целый пост в блоге об этом самом вопросе, и я рекомендую вам проверить его (или официальную документацию ) для более полного ответа.

Но если вы хотите быстрое (-иш) резюме, вот оно:

Более эффективные запросы и более структурированные данные. В то время как база данных в реальном времени представляет собой просто гигантское дерево JSON, Cloud Firestore немного более структурирован. Все ваши данные состоят из документов (которые в основном являются хранилищами ключей) и коллекций (которые являются коллекциями документов). Документы также часто указывают на вложенные коллекции, которые содержат другие документы, которые сами могут содержать другие документы и так далее.

Эти структурированные данные помогают вам двумя способами. Во-первых, все запросы являются мелкими , это означает, что вы можете запросить документ, не захватывая все данные внизу. Это означает, что вы можете хранить свои данные в иерархическом порядке так, чтобы вам было удобнее, не заботясь о том, чтобы ваша база данных была мелкой. Во-вторых, у вас есть более мощные запросы. Например, теперь вы можете выполнять запросы к нескольким полям, не создавая те «комбинированные» поля, которые объединяют (и денормализуют) данные из других частей вашей базы данных. В некоторых случаях Cloud Firestore просто запускает эти запросы напрямую, а в других случаях автоматически создает и поддерживает индексы для вас.

Разработано для масштабирования - Облачное хранилище пожаров сможет масштабироваться лучше, чем База данных в реальном времени. Важно отметить, что ваши запросы масштабируются до размера набора результатов, а не набора данных. Таким образом, поиск останется быстрым независимо от того, насколько большим может стать ваш набор данных.

Более простая ручная выборка данных. Как и база данных в реальном времени, вы можете настроить прослушиватели в Cloud Firestore для потоковой передачи изменений в режиме реального времени. Но если вы не хотите такого поведения и просто хотите вызвать «извлекать мои данные», Cloud Firestore также имеет это и встроен в качестве основного варианта использования. (Они намного лучше, чем onceзвонки в Realtime Database-land)

Поддержка нескольких регионов - это в основном означает большую надежность, так как ваши данные распределяются между несколькими центрами обработки данных одновременно. Но у вас все еще есть строгая последовательность, то есть вы всегда можете сделать запрос и быть уверенным, что вы получаете последнюю версию своих данных.

Другая модель ценообразования. В то время как база данных реального времени в основном взимает плату в зависимости от пропускной способности хранилища или сети, Cloud Firestore в основном взимает плату в зависимости от количества выполняемых вами операций . Будет ли это лучше или хуже? Это зависит от вашего приложения.

Cloud Firestore, вероятно, будет выглядеть довольно выгодно с точки зрения цены для приложения новостей, пошаговой многопользовательской игры или чего-то вроде вашей собственной версии Stack Overflow. Для чего-то вроде приложения для группового рисования в реальном времени, когда вы отправляете несколько обновлений в секунду нескольким людям, оно, вероятно, будет дороже, чем База данных в реальном времени.

Почему вы все еще хотите использовать базу данных в реальном времени - это сводится к нескольким причинам. 1) Это целое «это, вероятно, будет дешевле для приложений, которые делают много частых обновлений», о которых я упоминал ранее, 2) Это было в течение долгого времени и было испытано в бою тысячами приложений, 3) У него улучшена задержка и когда вам нужно что-то с надежно низкой задержкой для ощущения в реальном времени, база данных в реальном времени может работать лучше.

Для большинства новых приложений мы рекомендуем вам посетить Cloud Firestore. Но если у вас есть приложение, которое уже есть в базе данных реального времени, я не рекомендую переключаться просто ради переключения, если только у вас нет веских причин для этого.

Надеюсь, это поможет!

Тодд керпельман
источник
2
Большое вам спасибо, Тодд! Я видел объявление объявление, но не этот! Я полностью влюблен в Firestore, к сожалению, теперь мне нужно будет переписать весь мой RxJava, завернутый для этого xD.
Франсиско Дурдин Гарсия
1
Как вписывается Google Cloud Datastore? Наивно это, кажется, имеет много общего с Cloud Firestore. @ToddKerpelman
Джон Г
2
Он имеет много общего с Cloud Datastore. Самым большим отличием является интеграция с Firebase, поэтому у вас есть доступ к мобильному и веб-SDK вместе с собственным автономным режимом, а также функциями синхронизации в реальном времени. Cloud Datastore отлично подходит для крупномасштабной серверной разработки, где вы управляете собственным подключением к своему приложению, например, запускаете собственный веб-сайт в App Engine или через Compute / Container Engine.
Тодд Керпельман
2
Что на самом деле означает «сильная согласованность»? Теорема CAP гласит, что вы « не можете быть уверены, что получаете последнюю версию своих данных» в распределенной и доступной среде. Последовательность, доступность, допуск раздела => выберите 2.
AjahnCharles
1
@ToddKerpelman Любой шанс, что вы сделаете сравнение Cloud Firestore / Cloud Datastore. Эти два кажутся ужасно похожими.
TheAddonDepot
63

Вы можете прочитать всю статью здесь: https://medium.com/@beingrahul/firebase-cloud-firestore-vs-firebase-realtime-database-931d4265d4b0

Firebase Realtime databaseон структурирован как дерево JSON, но Cloud Firestoreхранит данные в форматах документов (который представляет собой набор пар ключ-значение) и коллекции (который представляет собой набор документов).

Больше структурных данных

База данных в реальном времени хранит данные в дереве JSON, а хранилище Fire Cloud хранит данные в документах, которые очень похожи на JSON. введите описание изображения здесь

В Cloud FireStore документы могут содержать вложенные коллекции и вложенные объекты (например, «телефон» на рисунке выше), оба из которых могут включать в себя примитивные поля, такие как строки (например, «имя», «электронная почта» и т. Д. На рисунке выше) или сложные объекты, такие как списки.

Лучший запрос

  • В базе данных реального времени мы можем только сортировать или фильтровать свойство в одном запросе, но не сортировать и не фильтровать свойство, в то время как в облачном хранилище FireStore вы можете объединять фильтры и комбинировать фильтрацию и сортировку для свойства в одном запросе.
  • Если вы хотите получать данные в порядке убывания, тогда Cloud FireStore очень полезен для вас, но для базы данных в реальном времени функция запросов недоступна. введите описание изображения здесь
  • Вы также можете объединить несколько методов «где», чтобы создать более конкретные запросы (логическое И) в Cloud FireStore. введите описание изображения здесь

Масштабируемость

Облачный Firestore сможет масштабироваться лучше, чем База данных в реальном времени. Важно отметить, что производительность вашего запроса пропорциональна размеру вашего результирующего набора, а не вашего набора данных. Таким образом, поиск останется быстрым независимо от того, насколько большим может стать ваш набор данных.

Ручная выборка данных

Мы можем прослушивать данные в реальном времени в Cloud FireStore, например в базе данных Realtime, но в Cloud FireStore. Мы также можем извлекать данные вручную (если вы хотите получать какие-либо данные только один раз).

Безопасность

В базе данных реального времени нам нужно проверять данные отдельно, используя правило проверки, но в облачном FireStore проверка данных происходит автоматически.

Запись данных

Мы можем выполнить несколько операций в одной партии и завершить их атомарно, с любой комбинацией set(), update()или delete()методов. введите описание изображения здесь

ценообразование

В базе данных реального времени взимается плата только за пропускную способность и хранилище, но с более высокой скоростью. Находясь в Cloud FireStore, взимает плату в основном с операций, выполняемых в вашей базе данных (чтение, запись, удаление), а также с более низкой скоростью, пропускной способностью и хранилищем.

0xAliHn
источник
12
Было бы неплохо , чтобы связать оригинальную статью: medium.com/@beingrahul/...
Salem Ouerdani
1
Можете ли вы объяснить более подробно, что означает «проверка данных происходит автоматически»?
SoEzPz
12

Причины выбрать Cloud Firestore вместо базы данных в реальном времени

Это улучшенная версия

Базы данных Firebase было достаточно для базовых приложений. Но он не был достаточно мощным, чтобы справляться со сложными требованиями. Вот почему Cloud Firestore представлен. Вот некоторые основные изменения.

  • Базовая структура файлов улучшена.
  • Автономная поддержка веб-клиента.
  • Поддерживает более сложные запросы.
  • Операции записи и транзакции являются атомарными.
  • Надежность и улучшение производительности
  • Масштабирование будет автоматическим.
  • Будет более безопасным.

ценообразование

В Cloud Firestore тарифы снизились, хотя он взимается главным образом с операций, выполняемых в вашей базе данных, а также с пропускной способностью и хранилищем. Вы также можете установить дневной лимит расходов. Вот полная информация о выставлении счетов.

Будущие планы Google

Когда они обнаружили недостатки в Базе данных в реальном времени, они создали другой продукт, а не улучшали старый. Несмотря на то, что нет надежных деталей, раскрывающих их текущее положение в Базе данных в реальном времени, пришло время подумать о том, что от нее можно отказаться.



Бертрам Гилфойл
источник
2

Предложить ссылку от Google, а также: База данных в реальном времени Firebase против FireStore

Извлечено из Google Docs, небольшая сумма здесь:

FireBase Real Time DB - это база данных NO SQL на базе JSON, предназначенная для мобильных приложений, региональная, и обычно используемая для хранения и синхронизации данных между пользователями / устройствами в режиме реального времени / с чрезвычайно низкой задержкой.

FireStore - это JSON, похожий на NOSQL DB, предназначенный для обеспечения высокого уровня параллелизма, глобального и простого автоматического масштабирования, разработанный для любых клиентов (не только мобильных приложений) с типичными сценариями использования, такими как отслеживание активов, аналитика в реальном времени, создание розничных каталогов продуктов, социальный пользователь профиль, игровые таблицы лидеров, приложения для чата и т. д.

TechFree
источник