Firebase 存储等待 uploadTask.onComplete 已过时

Posted

技术标签:

【中文标题】Firebase 存储等待 uploadTask.onComplete 已过时【英文标题】:Firebase Storage await uploadTask.onComplete outdated 【发布时间】:2021-03-04 19:52:19 【问题描述】:

我正在使用此代码。 错误消息如下: 错误:没有为“UploadTask”类型定义吸气剂“onComplete”。 (undefined_getter at [chatneu] lib/Screens/HomeScreen.dart:289)

  Future uploadFile() async 
    try 
      pr = new ProgressDialog(context);

      await ImagePicker().getImage(
          source: ImageSource.gallery).then((image) 
        setState(() 
          _image = image as File;
          //klammern weg bei ImagePicker und .getImage zu Pickimage
        );
      );
      await pr.show();

      Reference storageReference = FirebaseStorage.instance.ref().child(
          '$loggedInUser.uid/UserProfille/$Path.basename(_image.path)');
      UploadTask uploadTask = storageReference.putFile(_image);
      await uploadTask.onComplete;
      print('File Uploaded');
      storageReference.getDownloadURL().then((fileURL) 
        setState(() 
          FirebaseFirestore.instance.collection('Users').doc(loggedInUser.uid);
          Map<String, String> data = 
            'photoUrl': fileURL,
          ;

【问题讨论】:

【参考方案1】:

我不确定您从哪里得知 UploadTask 上有一个名为 onComplete 的方法。如果你按照documentation中的示例代码,你会看到你只是直接等待UploadTask:

await storageReference.putFile(_image);
storageReference.getDownloadURL().then(...);

您可能还想查看handling tasks 上的文档。

【讨论】:

刚刚通过遵循明显过时的 Flutter 上传 Firebase 图像的教程遇到了问题。仅供参考,之前有一个名为 StorageUploadTask 的类具有 onComplete 方法。

以上是关于Firebase 存储等待 uploadTask.onComplete 已过时的主要内容,如果未能解决你的问题,请参考以下文章

uploadTask 成功后,ref.downloadURL() 不执行或返回 url

如何从 Firebase Storage 获取下载网址?

将文件上传到 Firebase 存储并获取 downloadUrl。如何在 Kotlin 函数中返回结果?

在反应中使用异步等待从firebase存储中检索图像

如何在 Flutter 中等待文件上传到 Firebase 存储?

如何等待 Firebase 存储图像上传,然后运行下一个函数