我看到很多练习都放了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);
}
}
我认为您不再需要onComplete
,只需要await
从putFile
返回的Future
。
对于最新的代码示例,请始终查看FlutterFire文档,例如:上载文件。
非常感谢它的工作。这是的最终代码
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
请改用TaskSnapshot类。您不需要onComplete。
示例:
TaskSnapshot taskSnapshot = await uploadTask;