【问题标题】:Await putfile never finishes flutter firebase storage等待 putfile 永远不会完成颤振 Firebase 存储
【发布时间】:2021-05-24 08:51:20
【问题描述】:

我目前正在使用颤振文件选择器在我的设备上获取音频文件的路径,但是当我尝试将其上传到存储时,上传任务的等待永远不会完成。但是,如果我不等待上传任务完成,我可以在我的存储桶中看到它。我做错了什么

这是上传到存储的代码

 final firebase_storage.Reference storageRef = firebase_storage
      .FirebaseStorage.instance
      .ref('audio.m4a');

  Future<void> uploadFile(String filePath) async {
    File file = File(filePath);
    print(file.path);
    firebase_storage.UploadTask task = storageRef.putFile(file);
    print(task);
    String url = await (await task).ref.getDownloadURL();
    print(url);
  }

这是调用上传按钮的代码

 ElevatedButton(
      child: Text('Run Future',
      style: TextStyle(fontSize: 20)),
      onPressed: () {
          uploadFile(path)
           .then((value) => print("in builder"));
      },
 )))

编辑:所以我的文件上传正常,但它永远不会完成等待。永远不会检索下载 URL。我试着听任务的快照,但什么都没有打印出来

【问题讨论】:

    标签: flutter firebase-storage


    【解决方案1】:

    我不知道其他答案是否正确。但是,这就是我执行此类任务的方式。

    task = storageRef.putFile(_uniImage);
    task.whenComplete(() {
      print("image uploaded");
    });
    
    url = await profReference.getDownloadURL();
    Now, you can return this url, if you wish to. It is up to you.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-24
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多