Индикатор выполнения при входе в систему с помощью firebase Flutter

#android #flutter #firebase-authentication #progress-bar

# #Android #трепетание #firebase-аутентификация #индикатор выполнения

Вопрос:

Я создаю приложение, и я хотел бы показать индикатор выполнения, пока пользователь ожидает входа в систему на платформе.

Как я могу добавить индикатор выполнения в виде круга во время ожидания?

  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());
    }
  }
 } 
 

Ответ №1:

Поскольку вы используете future, лучшим способом было бы управлять a CircularProgressIndicator() с помощью логического значения внутри вашего метода следующим образом:

 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...