Я пытаюсь получить текст описания из базы данных Firecloud и использовать их в трех разных виджетах, добавить этот виджет в список, а затем передать этот список в ListView
. Для этого я выполнил внутри StreamBuilder
следующий код:
StreamBuilder(
stream: FirebaseFirestore.instance.collection('humansOfLpc').snapshots(),
builder: (BuildContext context,snapshot){
if(!snapshot.hasData){
return Center(
child: Text('Loading...'),
);
}
print('outside title and desc widget');
List<TitleAndDescription> titleAndDescriptions=[
];
snapshot.data.docs.map((document){
final about = document.data()["about"];
final aftercampusProgress =document.data()["afterCampusPlacement"];
final incampusPlacement = document.data()["incampusProgress"];
print('inside snapshots');
print(about);
final aboutDesc = TitleAndDescription(
title: 'About',
description: about,
);
final incampusProgressDesc = TitleAndDescription(
title: 'In-Campus Progress',
description: incampusProgress,
);
final afterCampusPlacementDesc=TitleAndDescription(
title: 'After Campus Placements',
description: afterCampusPlacement,
);
titleAndDescriptions.add(aboutDesc);
titleAndDescriptions.add(incampusProgressDesc);
titleAndDescriptions.add(afterCampusPlacementDesc);
});
return Expanded(
child: ListView(
children: titleAndDescriptions,
),
);
},
),
Основная проблема, с которой я столкнулся, заключается в том, что он не читает следующий код:
snapshot.data.docs.map((document){
final about = document.data()["about"];
final aftercampusProgress =document.data()["afterCampusPlacement"];
final incampusPlacement = document.data()["incampusProgress"];
print('inside snapshots');
print(about);
final aboutDesc = TitleAndDescription(
title: 'About',
description: about,
);
final incampusProgressDesc = TitleAndDescription(
title: 'In-Campus Progress',
description: incampusProgress,
);
final afterCampusPlacementDesc=TitleAndDescription(
title: 'After Campus Placements',
description: afterCampusPlacement,
);
titleAndDescriptions.add(aboutDesc);
titleAndDescriptions.add(incampusProgressDesc);
titleAndDescriptions.add(afterCampusPlacementDesc);
});
Я могу сказать это, поскольку консоль печатает 'outside title and desc widget'
, но не печатает 'inside snapshots'
.
Из-за этого мой список titleAndDescriptions
пуст, и я не получаю 3 виджета, а также данные в моем пользовательском интерфейсе. Пожалуйста, скажите, что я делаю не так и какая альтернатива у меня есть? Заранее спасибо.