Reputation: 645
I want to get the email of currently logged in user in accountEmail field. But it is displaying Instance of 'Future' in place of email. Below is the function to get the id of currently logged in user:
Future <String> getUserId() async{
FirebaseUser user = await FirebaseAuth.instance.currentUser();
return user.uid;
}
And in this way I am getting it:
new UserAccountsDrawerHeader(
accountName: new Text("Admin"),
accountEmail: new Text(getUserId().toString()),
),
I am new to flutter and any help would be highly appreciated.
Upvotes: 3
Views: 428
Reputation: 296
Try using FutureBuilder
UserAccountsDrawerHeader(
accountName: new Text("Admin"),
accountEmail: FutureBuilder(
future: getUserId(),
builder: (context,snapshot){
if(snapshot.hasData){
snapshot.data;
}else{
"-"
}
},
),
),
Upvotes: 1
Reputation: 80914
Inside the initState
, do the following:
FirebaseUser user = null;
@override
void initState() {
super.initState();
user = await FirebaseAuth.instance.currentUser();
}
Then you can do:
new UserAccountsDrawerHeader(
accountName: new Text("Admin"),
accountEmail: new Text(user.email.toString()),
),
Upvotes: 3