首页 > 解决方案 > 使用firebase Flutter登录时的进度条

问题描述

我正在构建一个应用程序,我想在用户等待登录平台时显示一个进度条。

如何在等待时添加圆形进度条?

 Future<void> validateAndSubmit() async {
  if (validateAndSave()) {
   try {
    final Auth auth = await AuthFactory.getAuth();
    final String userId = await auth
        .signInWithEmailAndPassword(_email, _password)
        .whenComplete(() =>
            Navigator.of(context).popAndPushNamed(RootPage.routeName));
       print('Signed In:$userId');
     } catch (e) {
     print('Error:$e');
     print(e.toString());
    }
  }
 } 

标签: androidflutterfirebase-authenticationprogress-bar

解决方案


由于您使用未来,最好的方法是CircularProgressIndicator()在您的方法中使用布尔值来控制 a ,如下所示:

Future<void> validateAndSubmit() async {
  setState(( {
      _isLoading = true;
    });

  if (validateAndSave()) {
   try {
    final Auth auth = await AuthFactory.getAuth();
    final String userId = await auth
        .signInWithEmailAndPassword(_email, _password)
        .whenComplete(() =>
            {
              setState(() {
               _isLoading = false;
            });
           Navigator.of(context).popAndPushNamed(RootPage.routeName));
         }
       print('Signed In:$userId');
     } catch (e) {
     print('Error:$e');
     print(e.toString());
    }
  }
 } 

然后在您的小部件树中的某个位置:

_isLoading ? CircularProgressIndicator() : Other widget...

推荐阅读