firebase存储映像第一次上传失败,但随后的上传尝试加载



所以,我是新的反应本地和firebase存储,我试图将图像上传到存储失败的第一次,但如果我立即尝试之后,它的工作没有任何问题,可以看到存储中的照片。

我第一次尝试得到的错误是:

{"code":"storage/unknown"; "customData"; {},"name"; ";FirebaseError"; "status_"; 400; "_baseMessage";Firebase storage:发生未知错误,请检查错误负载以获取服务器响应。(存储/未知)","line": 20330年,"column": 28日,"sourceURL":"http://192.168.1.12:19000 node_modules % 5 cexpo % 5 cappentry.bundle ?平台= android& dev = true&热= false&严格= false&贬低= false"}

下面的代码:

const submitPhoto = async () => {
let id = await auth.currentUser.uid;
// Create file metadata including the user id
var metadata = {
customMetadata: {
userUpload: id,
},
};
var ref;
try {
const response = await fetch(image);
const blob = await response.blob();
let imageName = image.substring(image.lastIndexOf('/') + 1);
setFileName(imageName);
ref = await firebase
.storage()
.ref('climbPhotos')
.child(filename)
.put(blob, metadata);
console.log(ref.metadata.name);
console.log(ref.metadata);
} catch (error) {
console.log(JSON.stringify(error));
Alert.alert('Server Error', 'Error has occurred on image upload');
}
setImage(null);
};

我对此感到困惑,因为就像我说的,它只发生在我第一次打开特定屏幕并上传任何图像时。

所以我弄清楚了问题是什么,这一切都与使用文件名的状态值的上传有关,尽管值正在设置(我在设置后立即用控制台日志检查),该值并不总是被正确传递。不管这是不是问题,似乎我的问题已经解决了,从孩子中删除状态。

const response = await fetch(image);
const blob = await response.blob();
let imageName = image.substring(image.lastIndexOf('/') + 1);
setFileName(imageName);
console.log(' vvvv ');
console.log(filename);
console.log(imageName);
console.log(image);
console.log(' ^^^ ');
var imageRef = firebase.storage().ref('climbPhotos').child(imageName);

26 a51e0a-8ab8-4b62-aa4a-46a3d777e4fa.jpeg文件:///数据/user/0/host.exp.exponent/缓存/ExperienceData/% 2540匿名% 252 frockclimbingapp - cde1c400 dff9 - 44 - c8 - 8840 c83b731c56de/image picker/26 a51e0a-8ab8-4b62-aa4a-46a3d777e4fa.jpeg

可以看到,日志显示了图像和imageName,但没有显示文件名,因为状态是async

最新更新