参数类型'Null'不能分配给参数类型"FirebaseUser".dart(argument_type_not_assignable)



我正在开发一个flutter auth应用程序,同时也尝试注销,我收到了一个错误,类型null不能分配给参数类型。

import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:time_tracker_app/app/home_page.dart';
import 'package:time_tracker_app/app/sign_in/sign_in_page.dart';
class LandingPage extends StatefulWidget {
@override
_LandingPageState createState() => _LandingPageState();
}
class _LandingPageState extends State<LandingPage> {
FirebaseUser? _user;
void _updateUser(FirebaseUser user) {
setState(() {
_user = user;
});
}
@override
Widget build(BuildContext context) {
if (_user == null) {
return SignInPage(onSignIn: _updateUser);
}
return HomePage(
//error
onSignOut: () => _updateUser(null),
);
}
}

遇到同样的问题,我尝试使用user.uid作为字符串而不是所有的User类来稍微更改逻辑。我知道这不是最性感的解决方案,但它最终会奏效。

class LandingPage extends StatefulWidget {
LandingPage({Key? key}) : super(key: key);
@override
_LandingPageState createState() => _LandingPageState();
}
class _LandingPageState extends State<LandingPage> {
String? _userId = '';
void _updateUser(String userId) {
print('User id: $userId');
setState(() {
_userId = userId;
});
}
@override
Widget build(BuildContext context) {
if (_userId == '') {
return SignInPage(
onSignIn: (user) => _updateUser(user.uid),
);
} else {
return HomePage(
onSignOut: () => _updateUser(''),
);
}
}
}

FirebaseAuth.instance.signOut()之后,获取具有user(Firebase(返回类型的当前用户并作为参数传递。。

样本代码:

FirebaseAuth.instance.signOut;
FirebaseAuth.instance.currentUser;
onSignOut(FirebaseAuth.instance.currentUser);

相关内容

最新更新