У меня есть следующий метод:
getCalendarEventList() async {
print('here we go agsain');
await Firestore.instance.collection('availableDates').where('bandId', isEqualTo: identifier).snapshots().listen(
(data) => data.documents.forEach((doc) => _markedDateMap.add(
doc['availableDates'].toDate(),
Event(
date:doc['availableDates'].toDate(),
title: 'hello',
icon: _presentIcon(doc['availableDates'].toDate().day.toString())))));
setState(() {});
}
Запрос firebase
содержит isEqualTo: identifier
в качестве условия.Identifier
- это String
, который фактически является базой Firebase uid
пользователя.GetCalendarEventList () вызывается в initState()
: потому что я хочу, чтобы календарь был заполнен маркерами
@override
void initState() {
super.initState();
getCalendarEventList();
}
У меня есть метод: который получает firebase
uid
:
Future<String> inputData() async {
final FirebaseUser user = await FirebaseAuth.instance.currentUser();
final String uid = user.uid.toString();
return uid;
}
Я поместил identifier = await inputData();
в getCalendarEventList()
и 9/10 раз, чтобы маркеры заполняли календарь .. (с initState()
) Так что это немного "глючит" ..Я думаю, что это связано с вызовом UID из Firebase.Где / Как я должен инициализировать переменную identifier
с firebase uid
?