Я инициализирую переменную в initState(){}
:
@override
void initState() {
getDataFromFirestore();
super.initState();
});
}
Метод является асинхронным и в основном получает данные из Firestore, чтобы заполнить объект '_markerMap' данными. Это свойство затем используется как свойство в виджете. И этот виджет вызывается в моем build
методе.
Widget build(BuildContext context) {
return new Scaffold(
body: MyWidget(
markerMap: _markerMap)
);
....
}
MyWidget - это календарь. markerMaps добавляет значки к определенным датам в календаре. Маркеры только иногда добавляются в календарь. Так что сбой прерывистый. Можно с уверенностью предположить, что в initState()
данные будут загружаться из firestore для инициализации переменной из Firestore. Есть мысли, что может происходить и почему только иногда маркеры появляются в календаре?
добавление кода с установленным _markerMap
getDataFromFirestore() async {
await FirebaseAuth.instance.currentUser().then((user) {
Firestore.instance.collection('availableDates').where('bandId', isEqualTo: user.uid).snapshots().listen(
(data) => data.documents.forEach((doc) => _markerMap.add(
doc['availableDates'].toDate(),
Event(
date:doc['availableDates'].toDate(),
title: 'hello',
icon: _presentIcon(doc['availableDates'].toDate().day.toString())))));
setState(() {});
}).catchError((onError){
});
}