这是我的代码
'''
initState: (_) async {
Get.put<UserController>(UserController());
},
builder: (_) {
if (Get.find<AuthController>().user?.isEmpty == true){
return HomeScreen();
} else {
return Login();
}
}
'''
AuthController 和 firebase,我使用 Rxn 来保证空值安全。
'''
class AuthController extends GetxController {
FirebaseAuth _auth = FirebaseAuth.instance;
Rxn<User> _firebaseUser = Rxn<User>();
String? get user => _firebaseUser.value?.email;
@override
void onInit() {
_firebaseUser.bindStream(_auth.authStateChanges());
}
}
'''
用户控制器
Rx<UserModel> _userModel = UserModel().obs;
UserModel? get user => _userModel.value;
set user(UserModel? value) => this._userModel.value = value!;
void clear(){
_userModel.value = UserModel();
}