如何在文本小部件中从firebase获取用户的电子邮件

如何在文本小部件中从firebase获取用户的电子邮件,firebase,flutter,dart,Firebase,Flutter,Dart,我想在导航抽屉中的用户名下写入用户的电子邮件,但我无法访问文本小部件中的电子邮件 我使用此代码从Firebase获取用户电子邮件id,但无法写入内部文本 class HomeScreen extends StatefulWidget { @override _HomeScreenState createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> {

我想在导航抽屉中的用户名下写入用户的电子邮件,但我无法访问文本小部件中的电子邮件 我使用此代码从Firebase获取用户电子邮件id,但无法写入内部文本

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  firebase_auth.FirebaseAuth firebaseAuth = firebase_auth.FirebaseAuth.instance;
  Future<void> signOut() async {
    await firebaseAuth.signOut();
  }


  dynamic user;
  String userEmail;

  getCurrentUserInfo() async {
    user = await firebaseAuth.currentUser;
    userEmail = user.email;
    print(userEmail);
    return userEmail;
  }

  static var chartdisplay;
 
  bool isSwitched = true;


  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;

    return Scaffold(
      appBar: AppBar(
        automaticallyImplyLeading: false,
        title: Padding(
          padding: EdgeInsets.symmetric(horizontal: 15),
          child: Builder(
            builder: (context) => IconButton(
              icon: Image.asset(
                "assets/images/menu.png",
              ),
              onPressed: () => Scaffold.of(context).openDrawer(),
            ),
          ),
        ),
        backgroundColor: const Color(0xffe8e5af),
        elevation: 0,
        centerTitle: false,
        titleSpacing: 0,
      ),
      drawer: new Drawer(
          child: new ListView(
        padding: EdgeInsets.zero,
        children: <Widget>[
          Container(
            padding: EdgeInsets.symmetric(vertical: 50, horizontal: 30),
            color: const Color(0xffe8e5af),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceEvenly,
              children: [
                CircleAvatar(
                  radius: 46,
                  backgroundColor: Colors.white,
                  child: CircleAvatar(
                    backgroundImage: AssetImage('assets/images/avatar.jpg'),
                    radius: 40,
                  ),
                ),
                Column(
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: [
                    Text(
                      'Nabia Salman',
                      style: TextStyle(
                        fontFamily: 'Montserrat',
                        fontSize: 13,
                        color: const Color(0xff000000),
                        fontWeight: FontWeight.w700,
                      ),
                      textAlign: TextAlign.left,
                    ),
                    Text(
                      //"${user.email}",
                      "nabia.salman99@gmail.com",
                      style: TextStyle(
                        fontFamily: 'Montserrat',
                        fontSize: 9,
                        color: const Color(0xff000000),
                      ),
                      textAlign: TextAlign.left,
                    ),
                  ],
                ),
              ],
            ),
          ),
类主屏幕扩展StatefulWidget{
@凌驾
_HomeScreenState createState()=>\u HomeScreenState();
}
类_homescrenstate扩展状态{
firebase_auth.FirebaseAuth FirebaseAuth=firebase_auth.FirebaseAuth.instance;
Future signOut()异步{
等待firebaseAuth.signOut();
}
动态用户;
字符串userEmail;
getCurrentUserInfo()异步{
用户=等待firebaseAuth.currentUser;
userEmail=user.email;
打印(用户电子邮件);
返回用户电子邮件;
}
静态显示;
bool isSwitched=true;
@凌驾
小部件构建(构建上下文){
Size Size=MediaQuery.of(context).Size;
返回脚手架(
appBar:appBar(
自动嵌入:false,
标题:填充(
填充:边缘组。对称(水平:15),
孩子:建筑工人(
生成器:(上下文)=>IconButton(
图标:Image.asset(
“assets/images/menu.png”,
),
onPressed:()=>Scaffold.of(context.openDrawer(),
),
),
),
背景颜色:常量颜色(0xffe8e5af),
海拔:0,
标题:错误,
标题间距:0,
),
抽屉:新抽屉(
子:新列表视图(
填充:EdgeInsets.zero,
儿童:[
容器(
填充:边缘组。对称(垂直:50,水平:30),
颜色:常量颜色(0xffe8e5af),
孩子:排(
mainAxisAlignment:mainAxisAlignment.space,
儿童:[
圆形(
半径:46,
背景颜色:Colors.white,
孩子:圆环星(
背景图片:AssetImage('assets/images/avatar.jpg'),
半径:40,
),
),
纵队(
crossAxisAlignment:crossAxisAlignment.start,
儿童:[
正文(
“Nabia Salman”,
样式:TextStyle(
fontFamily:“蒙特塞拉特”,
尺寸:13,
颜色:常量颜色(0xff000000),
fontWeight:fontWeight.w700,
),
textAlign:textAlign.left,
),
正文(
//“${user.email}”,
“纳比亚。salman99@gmail.com",
样式:TextStyle(
fontFamily:“蒙特塞拉特”,
字体大小:9,
颜色:常量颜色(0xff000000),
),
textAlign:textAlign.left,
),
],
),
],
),
),
这就是我的屏幕的样子

请帮我找到解决办法,因为我是新手
提前感谢您

如果您需要从异步调用获取数据,只需在小部件树中使用
FutureBuilder
,为其提供future
FuturegetCurrentUserInfo()
,设置默认数据,如“”,并在快照准备就绪时使用文本小部件显示它。有关
FutureBuilder
的更多信息,请点击此处:我应该在FutureBuilder的builder中写些什么?我使用了FutureBuilder,但我还不知道如何使用它?如果您能帮我一点忙的话?谢谢,我得到了:)