所以我有此图像上传功能。有了IOS模拟器上已经可用的默认图片和我从Google图片下载的一张图片,它可以完美运行。 但是,我下载的其他图像或在使用相机拍摄的android仿真器上的图像将被上传。但是,在线Firebase控制台中的图像无效。 当我console.log照片阵列时,图像的信息看起来都一样。
选择带有react-native-image-crop-picker的图像
onPressButton = () => {
ImagePicker.openPicker({
multiple: true,
includeBase64: true,
compressImageQuality: 0.7,
mediaType: "photo",
}).then(images => {
// console.log(images)
setPhotos(images)
});
}
这是图片上传功能;
uploadImages = () => {
const provider = firebase.database().ref(`providers/${uid}`);
console.log(photos)
return Promise.all(photos)
.then(photoarray => {
console.log('all responses are resolved successfully');
// take each photo, upload it and then return it's download URL
return Promise.all(photoarray.map((photo) => {
let file = photo.data;
const path = "Img_" + uuid.v4();
const storageRef = firebase
.storage()
.ref(`theft/${uid}/${path}`);
let metadata = {
contentType: 'image/jpeg',
};
// upload current photo and get it's download URL
return storageRef.putString(file, 'base64', metadata)
.then(() => {
console.log(`${path} was uploaded successfully.`);
return storageRef.getDownloadURL()
.then(fileUrl => ({ uri: fileUrl }));
});
}));
})
.catch((err) => {
console.error(err);
});
};
阵列中的所有图像均以image / jpeg文件形式上传。但是,未正确上传的文件在Firebase控制台中显示“错误加载预览”。
我无法解决这个问题,怎么可能正确显示某些图片,而有些人以前没有看过?