Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 无法理解firebase应用程序登录状态? 在下面的代码示例中,这些代码行正在做什么?我是一个初学者,无法理解这些代码行。谢谢你的帮助_Flutter_Dart - Fatal编程技术网

Flutter 无法理解firebase应用程序登录状态? 在下面的代码示例中,这些代码行正在做什么?我是一个初学者,无法理解这些代码行。谢谢你的帮助

Flutter 无法理解firebase应用程序登录状态? 在下面的代码示例中,这些代码行正在做什么?我是一个初学者,无法理解这些代码行。谢谢你的帮助,flutter,dart,Flutter,Dart,ApplicationLoginState _loginState=ApplicationLoginState.loggedOut ApplicationLoginState获取loginState=>\u loginState 绳子_电子邮件; 一串获取电子邮件=>\u电子邮件 类应用程序状态扩展ChangeNotifier{ 应用程序状态(){ init(); } Future init()异步{ 等待Firebase.initializeApp(); FirebaseAuth.insta

ApplicationLoginState _loginState=ApplicationLoginState.loggedOut

ApplicationLoginState获取loginState=>\u loginState

绳子_电子邮件; 一串获取电子邮件=>\u电子邮件


类应用程序状态扩展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();
   }
  }