颤振:Firebase当前用户抛出错误“;方法在null上调用;

颤振:Firebase当前用户抛出错误“;方法在null上调用;,firebase,flutter,dart,firebase-authentication,Firebase,Flutter,Dart,Firebase Authentication,我正试图遵循一个有关firebase身份验证的教程。我有一个根页面,在那里我想检查用户是否登录。 视情况而定,我将导航到主屏幕或登录屏幕 我在启动应用程序时收到错误“NoSuchMethodError:get current user方法调用为null” class RootPage extends StatefulWidget { RootPage({this.auth}); final BaseAuth auth; @override State<StatefulW

我正试图遵循一个有关firebase身份验证的教程。我有一个根页面,在那里我想检查用户是否登录。 视情况而定,我将导航到主屏幕或登录屏幕

我在启动应用程序时收到错误“NoSuchMethodError:get current user方法调用为null”

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;
      });
    });
  }
class RootPage扩展StatefulWidget{
RootPage({this.auth});
最终BaseAuth-auth;
@凌驾
State createState()=>new_RootPageState();
}
类_RootPageState扩展了状态{
AuthStatus AuthStatus=未确定AuthStatus;
字符串_userID=“”;
@凌驾
void initState(){
super.initState();
widget.auth.getCurrentUser().then((用户){
设置状态(){
如果(用户!=null){
_userID=user?.uid;
}
身份=
user?.uid==null?AuthStatus.NOT_LOGGED_IN:AuthStatus.LOGGED_IN;
});
});
}
get current user方法如下所示

Future<FirebaseUser> getCurrentUser() async {
    FirebaseUser user = await _firebaseAuth.currentUser();
    return user;
  }
Future getCurrentUser()异步{
FirebaseUser=等待_firebaseAuth.currentUser();
返回用户;
}

我做错了什么?

确保你正在传递
auth
像-
RootPage(auth:FirebaseAuth.instance);
你能给出一个代码示例吗?在你的应用程序中,无论你在哪里调用
RootPage()
-检查你是否传递了
RootPage()定义的参数
auth
constructor.like-
RootPage(auth:FirebaseAuth.instance);
Ah不知道我必须这么做,谢谢!仍在学习……我不明白为什么你要在构造函数中传递
FirebaseAuth.instance
,而你可以通过调用
FirebaseAuth.instance
在任何地方使用它。