Привет, я новичок ie во флаттере, и я пытаюсь получить данные из пожарного хранилища, используя построитель потока, и отображать счетчик, пока данные извлекаются из базы данных firebase. Я попытался реализовать построитель потоков и будущий построитель. У меня есть функция, которая выбирает данные из пожарного магазина, а затем я передаю данные в другую функцию для заполнения серебряной сетки. Может ли кто-нибудь помочь мне?
getDevotions(DevotionNotifier d) async {
QuerySnapshot snapshot =
await Firestore.instance.collection('devotions').getDocuments();
List<devotion> _devotionList = [];
snapshot.documents.forEach((document) {
devotion d1 = devotion.fromMap(document.data);
_devotionList.add(d1);
});
d.devotionList = _devotionList;
}
}
class _dailyDevotionPageState extends State<dailyDevotionPage> {
@override
void initState() {
DevotionNotifier _devotionNotifier =
Provider.of<DevotionNotifier>(context, listen: false);
getDevotions(_devotionNotifier);
super.initState();
}
@override
Widget build(BuildContext context) {
DevotionNotifier _devotionNotifier = Provider.of<DevotionNotifier>(context);
getDevotions(_devotionNotifier);
String url = "https://picsum.photos/412/700";
return Scaffold(
backgroundColor: Colors.white,
body: SafeArea(
child: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
expandedHeight: 220.0,
pinned: true,
elevation: 50,
flexibleSpace: FlexibleSpaceBar(
collapseMode: CollapseMode.parallax,
title: Text(
'Devotional',
style: TextStyle(
fontFamily: 'Merriweather',
),
),
background: Image.asset(
'assets/2.jpg', // <=== Add your own image to assets or use a .network image instead.
fit: BoxFit.cover,
),
),
),
new SliverGrid(
gridDelegate: SliverGridDelegateWithMaxCrossAxisExtent(
maxCrossAxisExtent: 200.0,
mainAxisSpacing: 10.0,
crossAxisSpacing: 6.0,
childAspectRatio: 0.7,
),
delegate: SliverChildBuilderDelegate(
(BuildContext context, int index) {
int i = _devotionNotifier.devotionList.length - index - 1;
return devotionLayout(_devotionNotifier, i, context);
},
childCount: _devotionNotifier.devotionList.length,
),
),
],
),
),
);
}