firebase - getter 'uid'在null上被调用

标签 firebase flutter dart firebase-authentication

我的应用程序流程如下:

包装器->身份验证->登录

但是,当我运行该应用程序时,它会显示红屏和以下异常:

    The following NoSuchMethodError was thrown building Wrapper(dirty, dependencies: [InheritedProvider<User>], state: _WrapperState#fd39b):
The getter 'uid' was called on null.
Receiver: null
Tried calling: uid

我以前曾经运行过它,并且运行良好,但是我不为什么现在显示此异常:

enter image description here
这是主要的:
class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return StreamProvider<User>.value(
      value: AuthService().user,
        child: MaterialApp(
          title: 'Sayarty',
          debugShowCheckedModeBanner: false,
          theme: ThemeData(
            primarySwatch: Colors.green,
            visualDensity: VisualDensity.adaptivePlatformDensity,
          ),
          home: Wrapper(),
        ),
    );
  }
}

这是包装器类:
    class Wrapper extends StatefulWidget {
  @override
  _WrapperState createState() => _WrapperState();
}

class _WrapperState extends State<Wrapper> {
  int _currentTab = 1;

  final _page = [
    Search(),
    Home(),
    Account(),
  ];

  @override
  Widget build(BuildContext context) {
    final user = Provider.of<User>(context);
    print(user.uid);

    if (user == null) {
      return Authenticate();
    } else {
      return
//        Home();
       }
}

最佳答案

可能是因为现在您在测试print(user.uid);之前添加了if user is == null
将其放在else中:

//print(user.uid);

if (user == null) {
  return Authenticate();
} else {
  print(user.uid);
  return
    Home();
}

关于firebase - getter 'uid'在null上被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62122211/

相关文章:

flutter - flutter keep alive widget 如何再次请求数据?

android-studio - Flutter:无法编辑pubspec.yml文件,尝试编辑pubspec.yml文件时显示 “File is read-only”弹出警告

javascript - 存在查询问题的 Firestore 事务

wordpress - 当新帖子添加到 WordPress 博客(flutter 应用程序)时,如何向设备发送通知?

android - 当用户从 Firebase 注销时显示登录

javascript - 如何防止 Flutter Web 中的 CTRL 和滚轮/触控板缩放?

当按钮单击时 flutter 创建动态文本字段

flutter - 可滚动屏幕- flutter

Android + Firebase 身份验证 + REST API : How to properly work with token?

swift - 我怎样才能摆脱 View Controller 中的关闭?