如何在Flatter firebase中创建进度条

如何在Flatter firebase中创建进度条,firebase,flutter,Firebase,Flutter,我在创建进度条以指示将图像上载到firebase存储的过程时遇到问题 Future getImage(BuildContext context) async { final picker = ImagePicker(); final pickedFile = await picker.getImage(source: ImageSource.gallery); setState(() { _image = File(pickedFile.path);

我在创建进度条以指示将图像上载到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的代码。
希望有人能帮我起来谢谢

使用Future Builder并在Future Builder中传递此getImage


或者您可以使用您可以收听
上传任务上的
事件

在这里:

现在您可以这样显示进度:

Text('Uploading ${(_progress * 100).toStringAsFixed(2)} %')
要创建进度条,请执行以下操作:

LinearProgressIndicator(
  value: _progress,
)

希望这能有所帮助。

嘿,我按照你的建议做了,但我的进度为零。你知道发生了什么吗?你能分享一下你的实现吗?我刚刚按照你上面的建议做了,并在函数头下面添加了var\u progress异常发生了。NoSuchMethodError(NoSuchMethodError:对null调用了方法“*”。Receiver:null尝试调用:*(100))您需要将_progress声明为state类的一部分,并且只在上载进行时显示它的值,同时还要检查null。如果你能分享你的密码,我会帮你更好。耶稣爱你
LinearProgressIndicator(
  value: _progress,
)