#flutter #google-cloud-firestore #stream-builder
#flutter #google-cloud-firestore #stream-builder
Вопрос:
У меня есть StreamBuilder, подключенный к списку, и список получает свои данные из Firebase, но при каждом событии в моей базе данных элементы в моем Streambuilder дублируются.
Вот мой код StreamBuilder:
StreamBuilder(
stream: masterListStart().asStream(),
builder: (context, snapshot) {
//return coursesList.length == 0
return finishedLoadingList
? ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: storysList.length,
itemBuilder: (context, index) {
//
StoryItems data = storysList[index];
//
return StoryItems(
data: data,
);
},
)
: CircularProgressIndicator();
},
),
Как я могу помешать StreamBuilder сделать это?
Комментарии:
1. Где
finishedLoadingList
переменная?2. Он находится в моем setState после завершения извлечения. Данные отображаются, но дублируются при изменении баз данных
Ответ №1:
Вместо использования finishedLoadingList
вы можете просто проверить состояние подключения к снимку следующим образом
StreamBuilder(
stream: masterListStart().asStream(),
builder: (context, snapshot) {
//return coursesList.length == 0
return (ConnectionState.done == snapshot.connectionState) ? ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
itemCount: storysList.length,
itemBuilder: (context, index) {
//
StoryItems data = storysList[index];
//
return StoryItems(
data: data,
);
},
) : CircularProgressIndicator();
},
),
Комментарии:
1. Сэр, вы лучшие, большое вам спасибо, все работает отлично. С наилучшими пожеланиями
2. Рад, что это помогло! Счастливое кодирование
3. Спасибо вам, сэр, за то, что вы
4. Здравствуйте, я снова запустил код, но проблема возникает снова, я попытался все перестроить и деинсталлировал приложение, проверил код и т. Д., Но, похоже, это происходит снова. Какие-либо другие решения?
5. Спасибо. Кстати, извините, что снова попросил вас помочь мне, а затем решил это самостоятельно, не хотел тратить ваше время.