Какую базу данных Firebase использовать для приложения чата, Firestore или Realtime Database? - PullRequest
0 голосов
/ 29 февраля 2020

Я создаю приложение, которое использует Firestore для хранения большей части данных. Приложение имеет функцию чата, и я собирался использовать для этого базу данных в реальном времени. Каковы преимущества использования Firebase Firestore против базы данных реального времени для этой функции чата? Если нет никакой разницы, должен ли я использовать Firestore для всего?

PS Я уже прочитал сравнение огненной базы двух https://firebase.google.com/docs/database/rtdb-vs-firestore, и я все еще не уверен, какой путь к go об этом.

Ответы [ 2 ]

2 голосов
/ 29 февраля 2020

FB RTDB был разработан для приложения чата, но он не так хорош для простых запросов. Firestore был разработан для улучшения требований к запросам и является более новым. Более новое не обязательно означает лучше, зависит от варианта использования. Их модели ценообразования очень разные, поэтому вам нужно понять, как будет взиматься плата за ваш вариант использования.

Конечно, вы можете использовать оба варианта. Они могут хорошо работать вместе, но если вам достаточно простого чата, я бы использовал RTDB.

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

PPS. RTDB взимает плату за объемы хранения данных и объемы загрузки данных. Firestore взимает за хранение, а БД читает и пишет. Последнее будет в приложении чата, поэтому я бы порекомендовал запустить сценарий «что, если» ios в Excel.

1 голос
/ 29 февраля 2020

Итак, какой из них в реальном времени?

Я не думаю, что один из них более реалистичен, чем другой.

Но затем Firestore пришел к Существование, с тех пор мы увидели много рекомендаций для Firestore

Это верно, Firestore имеет некоторые новые функции по сравнению с базой данных Firebase реального времени, поэтому он называется «новый флагман». Производительность запроса зависит от количества запрашиваемых вами элементов, а не от количества запрашиваемых элементов. Поэтому каждый раз, когда вы думаете, чтобы получить данные, соберите их в такой пропорции, чтобы поддерживать скорость, о которой вы говорили. Как говорят ребята из команды Firebase, Cloud Firestore имеет гарантию производительности, нет медленных запросов, поэтому время, которое требуется приложению для извлечения данных, зависит только от объема данных, которые вы извлекаете, а не от объема данных, которые у вас есть на Серверы Firebase. Другими словами, не имеет значения, если у вас есть одна тысяча, миллион или даже один миллиард документов в одной коллекции, например, для их извлечения 15, всегда потребуется одинаковое количество времени.

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

Так что помните, что действительно не имеет значения, если вы запрашиваете один документ из 10 или один предмет из 100.000 или 100.000.000.000, результат будет получен в точное время. Здесь я взял в качестве примера один документ. Что касается скорости, запрос одного документа из 100 миллионов будет быстрее, чем запрос 10 пунктов из тех же 100 миллионов. Таким образом, количество документов в коллекции не влияет на производительность запроса.

Это касается Cloud Firestore, но есть два основных ресурса, которые я рекомендую вам прочитать перед использованием того или другого:

https://firebase.google.com/docs/database/rtdb-vs-firestore https://firebase.googleblog.com/2017/10/cloud-firestore-for-rtdb-developers.html Так что проверьте цены моделей для каждой из них. Но имхо, и база данных Cloud Firestore, и база данных Firebase в реальном времени работают очень хорошо вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...