Считать невидимые сообщения в групповом чате с firestore - PullRequest
0 голосов
/ 18 ноября 2018

Я хочу отслеживать количество невидимых сообщений для каждого участника группового чата.Я храню метаданные чата в коллекции chats, а сообщения для каждого чата в messages/{chatId}.

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

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

Это хороший подход или существуетлучший способ сделать это?

Спасибо заранее.

1 Ответ

0 голосов
/ 18 ноября 2018

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

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

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

В моем приложении я буду прослушивать изменения сообщений, начиная с отметки времени, найденной в seenMsgTimestamps для этого чата

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

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

...