Флаттер: Как отображать сообщения из Firestore по одному?

# #flutter #dart #google-cloud-firestore

Вопрос:

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

Каков наилучший способ сделать это?

Я попытался извлечь последние 20 сообщений, чтобы поместить их в список сообщений (где Сообщение-это класс), а затем удалить уже просмотренные сообщения из списка. Но каждый раз, когда я обновляю, отображаются одни и те же сообщения. Может быть, с помощью StreamBuilder или FutureBuilder, но я понятия не имею, как действовать дальше.

Ответ №1:

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

Комментарии:

1. Спасибо, я об этом не думал, я постараюсь. Но как я могу дождаться заполнения списка, прежде чем отображать его? На данный момент я вынужден обновлять вручную, потому что виджет создается, пока список пуст.

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