Я сталкиваюсь с очень странной проблемой: когда я загружаю изображение в firebase через собственное приложение expo реакции, размер изображения увеличивается более чем вдвое.
Вот мой код, и если кто-то может помочь емубыл бы очень благодарен.
_pickImage = async () => {
await this.askPermissionsAsync(); // I have handled the permissions
var pickerResult = await ImagePicker.launchImageLibraryAsync({
base64:false,
aspect:[4,3],
quality: 0.2,
});
if (!pickerResult.cancelled) {
this._handleImagePicked(pickerResult.uri);
this.setState({itemImage:pickerResult.uri})
}
}
_handleImagePicked = async pickerResult => {
this.params = this.props.navigation.state.params;
var passedParameter = this.params.item.key;
var uploadUrl = await uploadImageAsync(pickerResult, passedParameter);
this.setState({ itemImage: uploadUrl });
console.log("itemIma",uploadUrl)
}
async function uploadImageAsync(uri,passedParameter) {
// прошлоПараметры - переданные значения с предыдущей страницы
const blob = await new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.onload = function() {
resolve(xhr.response);
};
xhr.onerror = function(e) {
console.log(e);
reject(new TypeError('Network request failed'));
};
xhr.responseType = 'blob';
xhr.open('GET', uri, true);
xhr.send(null);
});
const timestamp = Date.now()
const ref = firebase
.storage()
.ref()
.child("CategoryDescription" + "/" + `${passedParameter}` + "/" + `${timestamp}`);
const snapshot = await ref.put(blob);
blob.close();
const downloadUrl = await snapshot.ref.getDownloadURL();
return downloadUrl;
}
Пожалуйста, помогите мне, так как я сталкиваюсь с проблемой в течение долгого времени, и я не могу найти решение.