开发一个新的电子商务平台,融合了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中文网其他相关文章!