[英]Javascript Vue 3 - Cannot upload image to Firebase Storage after create new authentication account to Firebase Auth
我嘗試制作一個簡單的注冊表單,管理員可以在其中創建新用戶,包括新用戶的照片個人資料,但是在創建身份驗證后嘗試上傳圖像時返回錯誤(用戶已在 Firebase 身份驗證中創建)
無法讀取 null 的屬性(讀取“文件”)
const photo = ref(null)
const formData = reactive({
fn: "",
ln: "",
email: "",
password: "",
})
const signUp = async () => {
const result = await v$.value.$validate()
if(result){
createUserWithEmailAndPassword(auth, formData.email, formData.password)
.then(function(data) {
const imagesRef = stRef(storage, 'images/'+data.user.uid)
uploadBytes(imagesRef, photo.value.files[0]).then((snapshot) => {
console.log(photo.value.files[0]);
})
setDoc(doc(db, "users", data.user.uid), {
fn : formData.fn,
ln : formData.ln,
uid: data.user.uid,
email: formData.email,
})
closeModal()
router.go()
alert("Success, form submitted.")
})
.catch(error => {
switch (error.code) {
case 'auth/invalid-email':
errMsg.value = 'Invalid email address or password';
break;
case 'auth/user-not-found':
errMsg.value = 'User not found';
break;
case 'auth/wrong-password':
errMsg.value = 'Invalid email address or password';
break;
case 'auth/internal-error':
errMsg.value = 'Invalid email address or password';
break;
case 'auth/missing-email':
errMsg.value = 'Fill email address or password field';
break;
case 'auth/email-already-in-use':
errMsg.value = 'Email already used';
break;
default:
errMsg.value = error.message;
break;
}
});
} else {
alert(errMsg.value, "Form failed to submitted")
}
}
謝謝你的幫助
您似乎沒有在此代碼中更新photo
參考值(您聲明為ref(null)
,所以錯誤是因為photo.value
是 null 在線:
uploadBytes(imagesRef, photo.value.files[0])
不確定photo.value
應該是什么,但您需要確保在signUp
中訪問它之前為其分配一些內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.