我想将图片上传到 Firebase 存储,但我注意到大多数在线可用代码(文档除外)已弃用。 因为我是 flutter 的新手,所以我阅读了图像选择器和 firestore 的文档。 我能够找出图像选择器,但在存储桶中上传给我带来了困难。
以下是图像选择器的代码,我设法正确执行:
File _image;
final picker = ImagePicker();
Future getImage() async {
final pickedFile = await ImagePicker().getImage(source: ImageSource.camera);
setState(() {
if (pickedFile != null) {
_image = File(pickedFile.path);
} else {
print('No image selected.');
}
});
}
现在我不知道如何完成上传到 Firebase 存储功能:
Future UploadImage(BuildContext context) async{
String filename = basename(_image.path);
firebase_storage.FirebaseStorage storage = firebase_storage.FirebaseStorage.instance;
// how to proceed?
}
答案 0 :(得分:8)
既然你有文件名。我只会为此使用您的代码。
String filename = basename(_image.path);
Reference storageReference = FirebaseStorage.instance.ref().child("<Bucket Name>/$filename");
现在引用您的存储桶后,您需要将文件放入该存储桶中。
final UploadTask uploadTask = storageReference.putFile(file);
现在您需要图片的网址。为此,您需要等到上传完成。
final TaskSnapshot downloadUrl = (await uploadTask);
现在完成此操作后,您可以使用
获取文件的 URLfinal String url = await downloadUrl.ref.getDownloadURL();
此答案适用于版本号 firebase_storage: ^5.2.0
希望这会有所帮助。如果有任何疑问,请告诉我。