В своей функции onTap вы можете использовать Overlays
Overlay.of(context).insert(_yourCustomOverlayEntry)
await AuthService().yourFunction
_yourCustomOverlayEntry.remove();
Вы можете инициализировать свое поле _yourCustomOverlayEntry:
OverlayEntry _yourCustomOverlayEntry =
OverlayEntry(builder: (context) => YourCustomLoader(), opaque: false);
Я лично использую flutter_spinkit для создания моего загрузчика, но вы также можете используйте встроенный CircularProgressIndicator (проверьте API флаттера)
Обновление:
Затем вы можете использовать прослушиватели в задачах firebase для обновления прогресса
task.events.listen((event) {
final double progress =
event.snapshot.bytesTransferred / event.snapshot.totalByteCount;
setState(() {
_progress = progress;
});
});
И использовать двойной _progress в вашем индикатор прогресса.
(это тот, который я использовал для загрузки в хранилище firebase, поэтому вам придется изменить для себя, хотя вход в систему не должен быть слишком долгим, и вместо этого вы можете быть довольны загрузчиком спина фактического прогресса)