Flutter -> UploadTask 方法 OnComplete 不存在
Posted
技术标签:
【中文标题】Flutter -> UploadTask 方法 OnComplete 不存在【英文标题】:Flutter - > UploadTask method OnComplete does not exists 【发布时间】:2021-02-28 23:44:10 【问题描述】:我看到很多练习都放在了 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);
【问题讨论】:
【参考方案1】:请改用 TaskSnapshot 类。你不需要 onComplete。
例子:
TaskSnapshot taskSnapshot = await uploadTask;
【讨论】:
【参考方案2】:非常感谢它有效。这是最终代码
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
【讨论】:
嗨琼。看起来你实现了我的建议。在这种情况下,Stack Overflow 习惯于通过投票和/或接受来确认该答案。另见What should I do when someone answers my question?【参考方案3】:我认为您不再需要onComplete
,只需await
从putFile
返回的Future
。
对于最新的代码示例,请始终查看FlutterFire documentation,例如:uploading a file。
【讨论】:
以上是关于Flutter -> UploadTask 方法 OnComplete 不存在的主要内容,如果未能解决你的问题,请参考以下文章
iOS:didCompleteWithError、didReceive 响应未由 URLSession.uploadTask 触发
uploadTask 成功后,ref.downloadURL() 不执行或返回 url
使用 NSURLSession UploadTask 暂停、恢复、取消上传任务