# #flutter #dart #google-cloud-firestore
Вопрос:
У меня есть посты в Firestore, каждый пост содержит изображение. Я хочу отображать сообщения по одному. Когда пользователь нажимает кнопку, отображается другое сообщение. Я не хочу показывать одно и то же сообщение дважды одному и тому же пользователю.
Каков наилучший способ сделать это?
Я попытался извлечь последние 20 сообщений, чтобы поместить их в список сообщений (где Сообщение-это класс), а затем удалить уже просмотренные сообщения из списка. Но каждый раз, когда я обновляю, отображаются одни и те же сообщения. Может быть, с помощью StreamBuilder или FutureBuilder, но я понятия не имею, как действовать дальше.
Ответ №1:
Я думаю, что проблема в том, что вы удаляете уже просмотренные сообщения из списка, вы не должны этого делать. Попробуйте извлечь все просмотренные записи в список и сохранить их локально с помощью SharedPreferences, а затем показывать только те записи, которые не были просмотрены пользователем.
Комментарии:
1. Спасибо, я об этом не думал, я постараюсь. Но как я могу дождаться заполнения списка, прежде чем отображать его? На данный момент я вынужден обновлять вручную, потому что виджет создается, пока список пуст.
2. Если каждый раз, когда пользователь видит сообщение, оно будет отображаться в списке просмотренных сообщений для примера. Не удаляйте сообщение, которое было просмотрено, пусть список будет отметкой для просмотренных сообщений. Поэтому при обновлении вручную появятся невидимые сообщения.