当我运行应用程序并登录/或在关闭应用程序之前已经登录时=>quot;对空值使用的空校验运算符";错误突然出现,它在一秒钟内就消失了。我猜用户在数据出现之前就已经转到页面了。如果我注销并使用另一个帐户登录,红色屏幕不会出现,但最后一个用户数据只出现一秒钟,然后是当前用户数据。你能帮我一下吗。
我的原始登录方法
Future signIn() async {
try {
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: emailController.text.trim(),
password: passwordController.text.trim(),
);
print('Signed In');
} on FirebaseAuthException catch (e) {
print (e);
Utils.showSnackBar(e.message);
}}}
用户提供商
class UserProvider with ChangeNotifier {
User? _user;
final AuthMethods _authMethods = AuthMethods();
User get getUser => _user!;
Future<void> refreshUser() async {
User user = await _authMethods.getUserDetails();
_user = user;
notifyListeners();}}
我使用的代码刷新用户欢迎页面级别
class _welcomePageState extends State<welcomePage> {
void initState() {
super.initState();
addData();
}
addData() async{
UserProvider _userProvider = Provider.of(context,listen: false);
await _userProvider.refreshUser();
}
@override
如果这些代码不足以解决我可以分享所有的代码,请你帮我解决这个问题。
您在此处强制展开:用户获取getUser=>_使用者这意味着当你热重新加载应用程序时,它是空的,崩溃出现,直到它为空,你应该让它成为可选的,并提供一个默认值,这样它就不会崩溃。