在我处理登录,注销和注销身份验证的AuthProvider类中,我创建了2个返回Future String的函数,如下所示
Future<String> currentUser() async {
FirebaseUser user = await _auth.currentUser();
return user.uid;
}
Future<String> getCurrentUserEmail() async {
FirebaseUser user = await _auth.currentUser();
final String email = user.email.toString();
// print(email);
return email;
}
在菜单屏幕上,我想在文本字段中显示当前登录的用户电子邮件,并按以下方式调用它。
UserAccountsDrawerHeader(
accountName: Text('Brad Pitt'),
accountEmail: Text(
'${AuthProvider.of(context).auth.getCurrentUserEmail()}'),
我尝试同时使用currenUser()和getCurrentUserEmail()来尝试显示已登录用户的电子邮件,但是我一直显示“将来的实例”。
我在这里俯瞰什么?我已经尝试过我能想到的所有可能的技巧。
谢谢。
由于getCurrentUserEmail
返回Future
,您需要在构建方法中使用FutureBuilder
来使用它。
accountEmail: FutureBuilder<String>(
future: AuthProvider.of(context).auth.getCurrentUserEmail(),
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data)
}
else {
return Text("Loading user data...")
}
}
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句