Я хочу отправить фотографию, выбранную пользователем в моем приложении, в Firebase Storage. У меня есть простой класс с свойством _imageFile
который устанавливается следующим образом:
File _imageFile;
_getImage() async {
var fileName = await ImagePicker.pickImage();
setState(() {
_imageFile = fileName;
});
}
после этого отправлю фото как с помощью этого кода:
final String rand1 = "${new Random().nextInt(10000)}";
final String rand2 = "${new Random().nextInt(10000)}";
final String rand3 = "${new Random().nextInt(10000)}";
final StorageReference ref = FirebaseStorage.instance.ref().child('${rand1}_${rand2}_${rand3}.jpg');
final StorageUploadTask uploadTask = ref.put(_imageFile);
final Uri downloadUrl = (await uploadTask.future).downloadUrl;
print(downloadUrl);
Проблема в том, что фотографии часто очень большие. Есть ли какой-либо метод в Flutter/Dart для сжатия и изменения размера фотографии перед загрузкой? Я в порядке с потерей качества.