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

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

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

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

Ответы (7)

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

Но если вам нужна краткая (-ская) сводка, вот она:

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

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

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

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

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

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

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

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

  1. Вся эта вещь, «вероятно, будет дешевле для приложений, которые делают много частых обновлений», о чем я упоминал ранее,

  2. Он существует уже давно и был протестирован тысячами приложений,

  3. У него лучшая задержка, и когда вам нужно что-то с надежно низкой задержкой для ощущения в реальном времени, база данных Realtime может работать лучше.

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

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

  • Cloud Firestore - новейшая база данных Firebase для мобильных приложений. разработка. Он основан на успехах базы данных реального времени с новая, более интуитивно понятная модель данных. Cloud Firestore также имеет более насыщенные, быстрые запросы и масштабируемость больше, чем в базе данных в реальном времени.

  • Realtime Database - это исходная база данных Firebase. Это эффективный, решение с низкой задержкой для мобильных приложений, требующих синхронизированных состояний по клиентам в реальном времени.

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

Извлечено из google docs, небольшое резюме здесь:

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

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

Хотя большая часть ответов в основном верна, документация Firebase указывает, что нелегко сказать, что Firestore - это новый способ. Это зависит от того, что вы хотите делать с базами данных! Firebase задает вам ряд вопросов по ссылке ниже, и подумайте внимательно, потому что не так просто написать приложение для одного, а затем обнаружить, что вам нужно использовать другое!

Например: Количество экземпляров базы данных: Вам нужно много баз данных, по одной для каждого крупного клиента или только одна большая база данных? В первом случае используйте Firebase Realtime Database, в последнем - Firestore.

rtdb-vs-firestore

Cloud firestore в основном создан для простых, но больших данных а база данных Realtime предназначена для хранения сложных данных (выглядит как JSON)

Basic Intro. to both:-

  • Cloud Firestore - новейшая база данных Firebase для разработки мобильных приложений. Он основан на успехах Realtime Database с новой, более интуитивно понятной моделью данных. Cloud Firestore также предлагает более сложные и быстрые запросы и масштабируется дальше, чем база данных Realtime.
  • База данных в реальном времени - это исходная база данных Firebase. Это эффективное решение с малой задержкой для мобильных приложений, которым требуется синхронизация состояний клиентов в реальном времени.

Основное отличие: - База данных реального времени :::

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

Источник (подробнее .. от google): - https://firebase.google.com/docs/database/rtdb-vs-firestore#key_considerations

Причины выбрать Cloud Firestore вместо Realtime Database

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

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

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

Стоимость

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

Планы на будущее Google

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



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

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

Дополнительные структурные данные

База данных в реальном времени хранит данные в дереве JSON, в то время как Cloud firestore хранит данные в документах, что очень похоже на JSON. enter image description here

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

Улучшенный запрос

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

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

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

Ручная загрузка данных

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

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

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

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

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

Стоимость

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

2022 WebDevInsider