как мне создать индикатор выполнения в flutter firebase - PullRequest
1 голос
/ 19 июня 2020

У меня возникли проблемы с созданием индикатора выполнения, чтобы указать, что я загружаю изображение в хранилище firebase.

 Future getImage(BuildContext context) async {
    final picker = ImagePicker();
    final pickedFile = await picker.getImage(source: ImageSource.gallery);
    setState(() {
      _image = File(pickedFile.path);
    });
    StorageReference firebaseStorageRef = FirebaseStorage.instance.ref().child('profile/${Path.basename(_image.path)}}');
    StorageUploadTask uploadTask = firebaseStorageRef.putFile(_image);
    var dowurl = await (await uploadTask.onComplete).ref.getDownloadURL();   
     setState(() {    
       _imageURL = dowurl.toString();

     });

    print(_imageURL);
  } 

Это код, который я написал для загрузки изображения и получения изображения URL. Надеюсь, кто-нибудь сможет мне помочь, спасибо!

Ответы [ 2 ]

1 голос
/ 19 июня 2020

вы можете слушать events на своем uploadTask.

Здесь:

uploadTask.events.listen((event) {
      setState(() {
        _progress = event.snapshot.bytesTransferred.toDouble() /
            event.snapshot.totalByteCount.toDouble();
      });
    }).onError((error) {
      // do something to handle error
    });

Теперь вы можете просто отображать прогресс следующим образом:

Text('Uploading ${(_progress * 100).toStringAsFixed(2)} %')

Чтобы создать индикатор выполнения:

LinearProgressIndicator(
  value: _progress,
)

Надеюсь, что это поможет.

1 голос
/ 19 июня 2020

Используйте Future Builder и передайте этот getImage в future builder Future Builder Example

или вы можете использовать Modal Progress HUD

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...