Как в данный момент войти в почтовый ящик пользователя на боковой панели во флаттере? - PullRequest
0 голосов
/ 19 марта 2020

Я хочу получить адрес электронной почты зарегистрированного пользователя в поле accountEmail. Но вместо электронной почты отображается Экземпляр 'Future' . Ниже приведена функция для получения идентификатора текущего пользователя, вошедшего в систему:

Future <String> getUserId()  async{
  FirebaseUser user = await FirebaseAuth.instance.currentUser();
  return user.uid;
}

И таким образом я получаю его:

new UserAccountsDrawerHeader(
                accountName: new Text("Admin"),
                accountEmail: new Text(getUserId().toString()),
              ),

Я новичок, чтобы трепетать, и любая помощь будет высоко ценится.

Ответы [ 3 ]

2 голосов
/ 19 марта 2020

Внутри initState выполните следующее:

FirebaseUser user = null;
@override
void initState() {
    super.initState();
    user = await FirebaseAuth.instance.currentUser();
}

Тогда вы можете сделать:

new UserAccountsDrawerHeader(
                accountName: new Text("Admin"),
                accountEmail: new Text(user.email.toString()),
              ),
1 голос
/ 19 марта 2020

Попробуйте использовать FutureBuilder

 UserAccountsDrawerHeader(
      accountName: new Text("Admin"),
      accountEmail: FutureBuilder(
        future: getUserId(),
        builder: (context,snapshot){
          if(snapshot.hasData){
            snapshot.data;
          }else{
            "-"
          }
        },
      ),
    ),
0 голосов
/ 19 марта 2020

Просто используйте user.email.toString()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...