dart Flutter:Firebase当前用户抛出错误“Method is called on null”

sqougxex  于 2023-10-13  发布在  Flutter
关注(0)|答案(1)|浏览(112)

我正在尝试遵循一个教程关于认证与firebase。我有一个rootPage,我想检查用户是否登录。根据这一点,我将导航到主屏幕或登录屏幕。
我得到错误“NoSuchMethodError:启动应用程序时,在null”上调用了方法get current user。

class RootPage extends StatefulWidget {
  RootPage({this.auth});

  final BaseAuth auth;

  @override
  State<StatefulWidget> createState() => new _RootPageState();
}

class _RootPageState extends State<RootPage> {

AuthStatus authStatus = AuthStatus.NOT_DETERMINED;
String _userID = "";

  @override
  void initState() {
    super.initState();
    widget.auth.getCurrentUser().then((user) {
      setState(() {
        if (user != null) {
          _userID = user?.uid;
        }
        authStatus =
            user?.uid == null ? AuthStatus.NOT_LOGGED_IN : AuthStatus.LOGGED_IN;
      });
    });
  }

get current user方法如下所示:

Future<FirebaseUser> getCurrentUser() async {
    FirebaseUser user = await _firebaseAuth.currentUser();
    return user;
  }

我做错了什么?

c3frrgcw

c3frrgcw1#

当您试图从尚未初始化的类访问方法时,会发生“NoSuchMethodError method was called on null”错误。在调用getCurrentUser()之前,检查auth是否已初始化并添加空值检查。

相关问题