Flutter 无法理解firebase应用程序登录状态? 在下面的代码示例中,这些代码行正在做什么?我是一个初学者,无法理解这些代码行。谢谢你的帮助
ApplicationLoginState _loginState=ApplicationLoginState.loggedOut ApplicationLoginState获取loginState=>\u loginState 绳子_电子邮件; 一串获取电子邮件=>\u电子邮件Flutter 无法理解firebase应用程序登录状态? 在下面的代码示例中,这些代码行正在做什么?我是一个初学者,无法理解这些代码行。谢谢你的帮助,flutter,dart,Flutter,Dart,ApplicationLoginState _loginState=ApplicationLoginState.loggedOut ApplicationLoginState获取loginState=>\u loginState 绳子_电子邮件; 一串获取电子邮件=>\u电子邮件 类应用程序状态扩展ChangeNotifier{ 应用程序状态(){ init(); } Future init()异步{ 等待Firebase.initializeApp(); FirebaseAuth.insta
类应用程序状态扩展ChangeNotifier{
应用程序状态(){
init();
}
Future init()异步{
等待Firebase.initializeApp();
FirebaseAuth.instance.userChanges().listen((用户){
如果(用户!=null){
_loginState=ApplicationLoginState.loggedIn;
}否则{
_loginState=ApplicationLoginState.loggedOut;
}
notifyListeners();
});
}
ApplicationLoginState _loginState=ApplicationLoginState.loggedOut;
ApplicationLoginState获取loginState=>\u loginState;
字符串?\u电子邮件;
字符串?获取电子邮件=>\u电子邮件;
void startoginflow(){
_loginState=ApplicationLoginState.emailAddress;
notifyListeners();
}
无效验证电子邮件(
字符串电子邮件,
void函数(FireBaseAuth异常)errorCallback,
)异步的{
试一试{
var方法=
等待FirebaseAuth.instance.FetchSignInMethodForEmail(电子邮件);
if(methods.contains('password')){
_loginState=ApplicationLoginState.password;
}否则{
_loginState=ApplicationLoginState.register;
}
_电子邮件=电子邮件;
notifyListeners();
}关于FireBaseAuth异常捕获(e){
(e);
}
}
使用电子邮件和密码进行无效登录(
字符串电子邮件,
字符串密码,
void函数(FireBaseAuth异常)errorCallback,
)异步的{
试一试{
使用Email和Password等待FirebaseAuth.instance.Signin(
电邮:电邮,,
密码:密码,
);
}关于FireBaseAuth异常捕获(e){
(e);
}
}
作废取消注册(){
_loginState=ApplicationLoginState.emailAddress;
notifyListeners();
}
无效注册表帐户(字符串电子邮件、字符串显示名称、字符串密码、,
void函数(FireBaseAuth异常)errorCallback)异步{
试一试{
var credential=wait FirebaseAuth.instance
.createUserWithEmailAndPassword(电子邮件:电子邮件,密码:密码);
等待凭证.user!.updateProfile(displayName:displayName);
}关于FireBaseAuth异常捕获(e){
(e);
}
}
无效签出(){
FirebaseAuth.instance.signOut();
}
}
class ApplicationState extends ChangeNotifier {
ApplicationState() {
init();
}
Future<void> init() async {
await Firebase.initializeApp();
FirebaseAuth.instance.userChanges().listen((user) {
if (user != null) {
_loginState = ApplicationLoginState.loggedIn;
} else {
_loginState = ApplicationLoginState.loggedOut;
}
notifyListeners();
});
}
ApplicationLoginState _loginState = ApplicationLoginState.loggedOut;
ApplicationLoginState get loginState => _loginState;
String? _email;
String? get email => _email;
void startLoginFlow() {
_loginState = ApplicationLoginState.emailAddress;
notifyListeners();
}
void verifyEmail(
String email,
void Function(FirebaseAuthException e) errorCallback,
) async {
try {
var methods =
await FirebaseAuth.instance.fetchSignInMethodsForEmail(email);
if (methods.contains('password')) {
_loginState = ApplicationLoginState.password;
} else {
_loginState = ApplicationLoginState.register;
}
_email = email;
notifyListeners();
} on FirebaseAuthException catch (e) {
errorCallback(e);
}
}
void signInWithEmailAndPassword(
String email,
String password,
void Function(FirebaseAuthException e) errorCallback,
) async {
try {
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: email,
password: password,
);
} on FirebaseAuthException catch (e) {
errorCallback(e);
}
}
void cancelRegistration() {
_loginState = ApplicationLoginState.emailAddress;
notifyListeners();
}
void registerAccount(String email, String displayName, String password,
void Function(FirebaseAuthException e) errorCallback) async {
try {
var credential = await FirebaseAuth.instance
.createUserWithEmailAndPassword(email: email, password: password);
await credential.user!.updateProfile(displayName: displayName);
} on FirebaseAuthException catch (e) {
errorCallback(e);
}
}
void signOut() {
FirebaseAuth.instance.signOut();
}
}