Какая разница между Cloud Firestore и Firebase Realtime Database? - программирование
Подтвердить что ты не робот

Какая разница между Cloud Firestore и Firebase Realtime Database?

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

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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

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

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

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

Почему вы все еще можете использовать базу данных реального времени. Это сводится к нескольким причинам. 1) В целом это "вероятно, будет дешевле для приложений, которые делают много частых обновлений", о чем я упоминал ранее, 2) Он был давно и был протестирован тысячами приложений (Cloud Firestore все еще находится в стадии бета-тестирования), 3) Он получил лучшую задержку, и когда вам нужно что-то с надежной низкой задержкой для реального времени, база данных Realtime может работать лучше.

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

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

Ответ 2

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

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

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

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

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

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

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

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

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

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

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

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

В базе данных Realtime нам необходимо проверить данные отдельно с помощью правила проверки, но в Cloud FireStore проверка данных происходит автоматически.

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

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

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

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

Ответ 3

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

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

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

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

Цены

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

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

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