Я использую плагин Flutter и Firebase Storage для загрузки изображений с камеры, а также из галереи.
Отлично работает с любыми изображениями, снятыми камерой. Но если я пытаюсь загрузить скриншот (то есть PNG вместо JPEG), я получаю следующую ошибку StorageTaskEventType.failure
.
Возможно ли, что PNG каким-то образом ограничены или есть идеи, что я делаю неправильно?
Используется следующий код:
ImageProperties properties =
await FlutterNativeImage.getImageProperties(imageFile.path);
File compressedFile = await FlutterNativeImage.compressImage(imageFile.path,
quality: 50,
targetWidth: 900,
targetHeight: (properties.height * 900 / properties.width).round()
);
String fileName = DateTime.now().millisecondsSinceEpoch.toString() + '.jpg';
StorageReference reference = FirebaseStorage.instance
.ref()
.child('groups')
.child(widget.groupId)
.child('messageContent')
.child(fileName);
StorageUploadTask uploadTask = reference.putFile(compressedFile);
StorageTaskSnapshot storageTaskSnapshot = await uploadTask.onComplete;
await storageTaskSnapshot.ref.getDownloadURL().then((downloadUrl) {
imageUrl = downloadUrl;
setState(() {
isLoading = false;
_handleSubmitted(imageUrl: imageUrl);
});
}, onError: (err) {
setState(() {
isLoading = false;
});
});
}