Mt *_*ifa 12 dart firebase flutter firebase-storage
我正在尝试上传图片,同样的过程适用于我的其他应用程序,但在这里它给出了这些错误,你们能帮忙吗?
Future getImage1() async {
// ignore: deprecated_member_use
var firstImage = await ImagePicker.pickImage(
source: ImageSource.gallery, imageQuality: 65);
setState(() {
_image1 = firstImage;
});
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*dad 37
您必须执行以下操作:
FirebaseStorage storage = FirebaseStorage.instance;
Reference ref = storage.ref().child("image1" + DateTime.now().toString());
UploadTask uploadTask = ref.putFile(_image1);
uploadTask.then((res) {
res.ref.getDownloadURL();
});
Run Code Online (Sandbox Code Playgroud)
StorageReference
class 已被删除,现在您必须使用 class Reference
。UploadTask
extends Task
,它也实现了Future<TaskSnapshot>
. 因此,类中的所有方法都可以在类Future
上使用UploadTask
。
因此,要获取url
图像的 ,您需要使用then()
注册回调的方法,以便在此未来完成时调用。
小智 9
正如 @PeterHadad 提到的,Firebase Storage 5.0.1 中有一些重大变化。这些类已被重命名,但保留了大部分旧功能。
您还可以使用 .whenComplete() 获取下载 URL,如下所示 -
uploadPic(File _image1) async {
FirebaseStorage storage = FirebaseStorage.instance;
String url;
Reference ref = storage.ref().child("image1" + DateTime.now().toString());
UploadTask uploadTask = ref.putFile(_image1);
uploadTask.whenComplete(() {
url = ref.getDownloadURL();
}).catchError((onError) {
print(onError);
});
return url;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8874 次 |
最近记录: |