Поэтому я написал целый пост в блоге об этом самом вопросе, и я рекомендую вам проверить его (или официальную документацию ) для более полного ответа.
Но если вы хотите быстрое (-иш) резюме, вот оно:
Более эффективные запросы и более структурированные данные. В то время как база данных в реальном времени представляет собой просто гигантское дерево JSON, Cloud Firestore немного более структурирован. Все ваши данные состоят из документов (которые в основном являются хранилищами ключей) и коллекций (которые являются коллекциями документов). Документы также часто указывают на вложенные коллекции, которые содержат другие документы, которые сами могут содержать другие документы и так далее.
Эти структурированные данные помогают вам двумя способами. Во-первых, все запросы являются мелкими , это означает, что вы можете запросить документ, не захватывая все данные внизу. Это означает, что вы можете хранить свои данные в иерархическом порядке так, чтобы вам было удобнее, не заботясь о том, чтобы ваша база данных была мелкой. Во-вторых, у вас есть более мощные запросы. Например, теперь вы можете выполнять запросы к нескольким полям, не создавая те «комбинированные» поля, которые объединяют (и денормализуют) данные из других частей вашей базы данных. В некоторых случаях Cloud Firestore просто запускает эти запросы напрямую, а в других случаях автоматически создает и поддерживает индексы для вас.
Разработано для масштабирования - Облачное хранилище пожаров сможет масштабироваться лучше, чем База данных в реальном времени. Важно отметить, что ваши запросы масштабируются до размера набора результатов, а не набора данных. Таким образом, поиск останется быстрым независимо от того, насколько большим может стать ваш набор данных.
Более простая ручная выборка данных. Как и база данных в реальном времени, вы можете настроить прослушиватели в Cloud Firestore для потоковой передачи изменений в режиме реального времени. Но если вы не хотите такого поведения и просто хотите вызвать «извлекать мои данные», Cloud Firestore также имеет это и встроен в качестве основного варианта использования. (Они намного лучше, чем once
звонки в Realtime Database-land)
Поддержка нескольких регионов - это в основном означает большую надежность, так как ваши данные распределяются между несколькими центрами обработки данных одновременно. Но у вас все еще есть строгая последовательность, то есть вы всегда можете сделать запрос и быть уверенным, что вы получаете последнюю версию своих данных.
Другая модель ценообразования. В то время как база данных реального времени в основном взимает плату в зависимости от пропускной способности хранилища или сети, Cloud Firestore в основном взимает плату в зависимости от количества выполняемых вами операций . Будет ли это лучше или хуже? Это зависит от вашего приложения.
Cloud Firestore, вероятно, будет выглядеть довольно выгодно с точки зрения цены для приложения новостей, пошаговой многопользовательской игры или чего-то вроде вашей собственной версии Stack Overflow. Для чего-то вроде приложения для группового рисования в реальном времени, когда вы отправляете несколько обновлений в секунду нескольким людям, оно, вероятно, будет дороже, чем База данных в реальном времени.
Почему вы все еще хотите использовать базу данных в реальном времени - это сводится к нескольким причинам. 1) Это целое «это, вероятно, будет дешевле для приложений, которые делают много частых обновлений», о которых я упоминал ранее, 2) Это было в течение долгого времени и было испытано в бою тысячами приложений, 3) У него улучшена задержка и когда вам нужно что-то с надежно низкой задержкой для ощущения в реальном времени, база данных в реальном времени может работать лучше.
Для большинства новых приложений мы рекомендуем вам посетить Cloud Firestore. Но если у вас есть приложение, которое уже есть в базе данных реального времени, я не рекомендую переключаться просто ради переключения, если только у вас нет веских причин для этого.
Надеюсь, это поможет!