Javascript 如何在用户填写表单的同时将图像上传到firebase存储,但仅在用户接受表单时保存

Javascript 如何在用户填写表单的同时将图像上传到firebase存储,但仅在用户接受表单时保存,javascript,firebase,react-native,expo,firebase-storage,Javascript,Firebase,React Native,Expo,Firebase Storage,我正在使用react native expo管理的工作流创建移动应用程序。我想实现的是,当用户添加新车时,它会打开摄像头,用户选择少量照片并接受。现在用户正在填写表单,同时照片也在上传,但我不想在它达到99%时暂停它,并在用户接受表单时在数据库中完成它。因为用户可以同时改变主意,选择新照片或关闭表单,所以我不想在firebase存储中存储这种情况下的照片 从“./src/firebase/config”导入{firebase}; 从“/resizePhoto”导入resizePhoto; 让c

我正在使用react native expo管理的工作流创建移动应用程序。我想实现的是,当用户添加新车时,它会打开摄像头,用户选择少量照片并接受。现在用户正在填写表单,同时照片也在上传,但我不想在它达到99%时暂停它,并在用户接受表单时在数据库中完成它。因为用户可以同时改变主意,选择新照片或关闭表单,所以我不想在firebase存储中存储这种情况下的照片

从“./src/firebase/config”导入{firebase};
从“/resizePhoto”导入resizePhoto;
让carsRef;
让carImagesRef;
const storageRef=firebase.storage().ref();
const uploadImage=async(blobImage)=>{
var random=Math.random();
var uploadTask=storageRef.child(“images/”+random).put(blobImage);
const imageUrl=等待新承诺((解析、拒绝)=>{
上传任务(
firebase.storage.TaskEvent.STATE\u已更改,//或“STATE\u已更改”
功能(快照){
console.log(snapshot.state);
//获取任务进度,包括上载的字节数和要上载的总字节数
var progress=(snapshot.bytesttransfered/snapshot.totalBytes)*100;
日志(“上传是”+进度+%完成”);
交换机(snapshot.state){
案例firebase.storage.TaskState.PAUSED://或“PAUSED”
console.log(“上传暂停”);
打破
案例firebase.storage.TaskState.RUNNING://或“RUNNING”
log(“正在运行上载”);
打破
}
},
函数(错误){
//有关错误代码的完整列表,请访问
// https://firebase.google.com/docs/storage/web/handle-errors
开关(错误代码){
案例“存储/未授权”:
//用户没有访问该对象的权限
打破
案例“存储/取消”:
//用户取消了上传
打破
案例“存储/未知”:
//发生未知错误,请检查错误。serverResponse
打破
}
},
函数(){
//上传成功,现在我们可以获得下载URL
uploadTask.snapshot.ref.getDownloadURL().then(函数(downloadURL)){
解析(下载URL);
});
}
);
});
返回imageUrl;
};
export const uploadImagesToStorage=async(照片)=>{
const promises=photos.map(异步(照片)=>{
const resizedPhoto=等待resizePhoto(照片);
const response=wait fetch(resizedPhoto.uri);
const blob=wait response.blob();
const imageUrl=等待上载映像(blob);
返回imageUrl;
});
const photoURL=等待承诺。全部(承诺);
返回照片URL;
};