Проверьте, читал ли пользователь данные или нет, используя firestore

Я разрабатывал приложение для чата во флаттере, используя firestore, пользователи успешно общались один на один. но я также хочу отправить пользователю уведомление о том, что кто-то отправляет ему/ей сообщение. Для этого я решил использовать облачный сервис обмена сообщениями firebase, но как я могу проверить, прочитал ли пользователь сообщение или нет.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Два наиболее распространенных подхода, о которых я знаю, это:

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

  • Однако в большинстве чат-приложений отслеживание того, какие сообщения прочитал каждый пользователь, выполняется как «до сих пор». Таким образом, если пользователь прочитал все сообщения до определенного момента или до определенного времени, предполагается, что он также прочитал все сообщения до этого момента.

    Для этой модели вместо этого вы можете просто сохранить один идентификатор документа или отметку времени для каждого пользователя (например, readUpTo), вместо того, чтобы отмечать каждое сообщение для каждого пользователя, который его прочитал. Затем в пользовательском интерфейсе вы определяете, показывать ли каждое сообщение как непрочитанное на основе идентификатора сообщения/отметки времени по сравнению с отметкой времени readUpTo.

Другие вопросы по теме