開發一個新的電子商務平台,融合了Stockx和eBay功能,提出了陡峭的學習曲線。 我的第一個主要項目,我最初是針對完全定制的解決方案,包括身份驗證的。但是,這一決定強調了Firebase Auth比手動身份驗證的顯著優勢。
>>手動身份驗證:初始嘗試
>>我的初始方法涉及手動身份驗證系統,以及用於數據存儲的Firebase。該過程是:
<code class="language-javascript">const submitFormData = async (path, data) => { // Store JWT token localStorage.setItem("token", responseData.data.token); console.log("Redirecting to home page"); location.replace("/"); }; subBtn.addEventListener("click", () => { // Form validation if (!tac.checked) { showAlert("you must agree to our terms and conditions"); } else { loader.style.display = "block"; submitFormData("/signup", { name: name.value, email: email.value, password: password.value, number: number.value, tac: tac.checked, notification: notification.checked, seller: false }); } });</code>
從Firebase獲取用戶數據時出現問題。 用戶對象始終返回。 調試數小時揭示了我的手動方法的局限性。 Firebase auth提供了更優雅的解決方案。
>null
firebase auth解決方案:一種簡化的方法
> 切換到firebase auth極大地簡化了該過程。 修訂後的實現:
>註冊
<code class="language-javascript">const auth = getAuth(); createUserWithEmailAndPassword(auth, email.value, password.value) .then((userCredential) => { const user = userCredential.user; loader.style.display = "block"; return submitFormData("/signup", { name: name.value, email: email.value, password: password.value, number: number.value, tac: tac.checked, notification: notification.checked, seller: false }); }) .catch((error) => { showAlert(error.message); });</code>
<code class="language-javascript">signInWithEmailAndPassword(auth, email.value, password.value) .then((userCredential) => { const user = userCredential.user; loader.style.display = "block"; return submitFormData("/login", { email: email.value, password: password.value }); }) .catch((error) => { showAlert(error.message); });</code>
簡化的設置:
getAuth()
強大的用戶管理:createUserWithEmailAndPassword()
signInWithEmailAndPassword()
經驗教訓以上是Firebase Auth vs手冊Auth:開發人員&#S之旅的詳細內容。更多資訊請關注PHP中文網其他相關文章!