Flutter -> UploadTask 方法 OnComplete 不存在

Joa*_*tiz 8 database firebase flutter firebase-storage

我看到很多练习都把 onComplete 但我的代码这是错误

没有为“UploadTask”类型定义 getter“onComplete”。尝试导入定义“onComplete”的库,将名称更正为现有 getter 的名称,或定义名为“onComplete”的 getter 或字段

为什么 ??

void uploadImage() async {
    if (safeNeuralNetwork()) {
      //Subir imagen a firebase storage
      final Reference postImageRef =
          FirebaseStorage.instance.ref().child("Post Images");
      var timeKey = DateTime.now();
    
      print(sampleImage);
      UploadTask uploadTask =
          postImageRef.child(timeKey.toString() + ".jpg").putFile(sampleImage);
      var imageUrl =
          await (await uploadTask.onComplete).ref.getDownloadURL();
      url = imageUrl.toString();
      print(url);
      // Guardar el post en la bbdd
      saveToDatabase(url);
      //Regresar en Home
      Navigator.pop(context);
    }
  }
Run Code Online (Sandbox Code Playgroud)

Fra*_*len 18

我认为你不需要onComplete了,并且可以只awaitFuture这与返回putFile

对于最新的代码示例,请始终查看FlutterFire 文档,例如:上传文件


Joa*_*tiz 7

非常感谢它的工作原理。这是最终的代码

  print(sampleImage);
  UploadTask uploadTask =
      postImageRef.child(timeKey.toString() + ".jpg").putFile(sampleImage);
  print('aaa');
  print(uploadTask);
  var imageUrl = await (await uploadTask).ref.getDownloadURL();
  url = imageUrl.toString();
  print(url);
  // Guardar el post en la bbdd
Run Code Online (Sandbox Code Playgroud)

  • 嘿,琼。看来你实施了我的建议。在这种情况下,Stack Overflow 上通常会通过投票和/或接受来确认该答案。另请参阅[当有人回答我的问题时我该怎么办?](https://stackoverflow.com/help/someone-answers) (4认同)