颤振:Firebase当前用户抛出错误“;方法在null上调用;
我正试图遵循一个有关firebase身份验证的教程。我有一个根页面,在那里我想检查用户是否登录。 视情况而定,我将导航到主屏幕或登录屏幕 我在启动应用程序时收到错误“NoSuchMethodError:get current user方法调用为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
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
在任何地方使用它。