gpt4 book ai didi

firebase - 在哪里初始化 initState() 中需要的变量?

转载 作者:IT王子 更新时间:2023-10-29 07:18:40 25 4
gpt4 key购买 nike

我有以下方法:

 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() 中调用:因为我想要 calendar填充标记

@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()) 所以它有点“错误”..我认为这与从 Firebase 调用 uid 有关。我应该在哪里/如何使用 firebase uid 初始化变量 identifier

最佳答案

您可以做的是调用标识符,完成后,您可以调用 getCalenderEvents()

   await FirebaseAuth.instance.currentUser().then((user) {
Firestore.instance.collection('availableDates').where('bandId', isEqualTo: user.uid).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(() {});
}).catchError((onError){
handleError();
});

   await FirebaseAuth.instance.currentUser().then((user) {
setState(() {
identifier = user.uid;
});
getCalenderEvents();
}).catchError((onError){
handleError();
});

关于firebase - 在哪里初始化 initState() 中需要的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56480980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com