首页 > 解决方案 > 为什么传票有误?意外的空值

问题描述

在此处输入图像描述

class DrawerWidget extends StatefulWidget {
  final RouteArgument? routeArgument;
  final GlobalKey<ScaffoldState>? parentScaffoldKey;
  final User? user;

  const DrawerWidget({
    Key? key,
    this.routeArgument,
    this.parentScaffoldKey,
    this.user,
  }) : super(key: key);

  @override
  _DrawerWidgetState createState() => _DrawerWidgetState();
}

class _DrawerWidgetState extends StateMVC<DrawerWidget> {
  _DrawerWidgetState() : super(ProfileController());

  late User? user;

  @override
  void initState() {
    super.initState();
    user = widget.user;
  }

  @override
  Widget build(BuildContext context) {
    return Drawer(
        child: ListView(
            children: [
              GestureDetector(
                  child: auth.FirebaseAuth.instance.currentUser != null
                      ? UserAccountsDrawerHeader(
                      decoration: BoxDecoration(
                          color: Theme
                              .of(context)
                              .hintColor
                              .withOpacity(0.1),
                          borderRadius: BorderRadius.only(
                              bottomLeft: Radius.circular(35))),
                      accountName: Text(
                        auth.FirebaseAuth.instance.currentUser == null
                            ? ''
                            : user!.name!,
                        style: Theme
                            .of(context)
                            .textTheme
                            .headline6,
                      ),
                      accountEmail: Text(
                        'user.email',
                        style: Theme
                            .of(context)
                            .textTheme
                            .caption,
                      )))]));}}

在此处输入图像描述

标签: firebaseflutterfirebase-authentication

解决方案


CurrentUser 是返回 Future FirebaseUser,因此您需要异步函数来获取 currentUser。

_getCurrentUser() async {

User user = await FirebaseAuth.instance.currentUser();

return user;
}

像这样的东西。


推荐阅读