我正在尝试遵循一个教程关于认证与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;
}
我做错了什么?
1条答案
按热度按时间c3frrgcw1#
当您试图从尚未初始化的类访问方法时,会发生“NoSuchMethodError method was called on null”错误。在调用
getCurrentUser()
之前,检查auth
是否已初始化并添加空值检查。