使用Firebase Auth时持续出现400错误,寻求技术帮助
Firebase Web 身份验证400错误修复方案
核心问题与修复步骤
- 注册函数参数冗余:
regUser函数中已通过document.getElementById('email').value拿到邮箱字符串,调用createUserWithEmailAndPassword时无需再加.value,否则会传递undefined导致参数无效。 - 登录函数变量未声明:登录回调里直接使用的
email和password未在当前作用域定义,需重新获取输入框值。 - 补充完整Firebase配置:
firebaseConfig中的projectId和storageBucket需从Firebase控制台复制完整内容,避免潜在配置问题。 - 完善错误日志:在
catch块中添加错误信息输出,方便排查具体问题。
修正后的代码
import { initializeApp } from "https://www.gstatic.com/firebasejs/10.11.1/firebase-app.js"; import { getAuth, createUserWithEmailAndPassword, GoogleAuthProvider, signInWithRedirect, signInWithEmailAndPassword } from "https://www.gstatic.com/firebasejs/10.11.1/firebase-auth.js"; import { getDatabase, set, ref } from "https://www.gstatic.com/firebasejs/10.11.1/firebase-database.js"; // 从Firebase控制台复制完整配置 const firebaseConfig = { apiKey: "AIzaSyDj5gayMeO7LlMYkLKlMojXuBzLLa46H7I", authDomain: "你的实际认证域名", databaseURL: "你的实际数据库URL", projectId: "你的实际项目ID", storageBucket: "你的实际存储桶地址", messagingSenderId: "542508426520", appId: "1:542508426520:web:fa17e971eb43be4c8e6a6d", measurementId: "G-DEMX9X0NYE" }; const app = initializeApp(firebaseConfig); const auth = getAuth(app); const provider = new GoogleAuthProvider(); const db = getDatabase(app); // 注册功能 const register = document.getElementById('register'); function regUser(){ const email = document.getElementById('email').value; const password = document.getElementById('password').value; console.log(email, password); alert("账户创建中"); createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { const user = userCredential.user; console.log("注册成功:", user); // 可在此添加用户信息写入数据库等逻辑 }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; console.error("注册错误:", errorCode, errorMessage); alert(`注册失败:${errorMessage}`); }); } register.addEventListener('click', regUser); // 登录功能 const login = document.getElementById('login'); login.addEventListener("click", function(event){ // 重新获取当前输入框的值 const email = document.getElementById('email').value; const password = document.getElementById('password').value; signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { const user = userCredential.user; console.log("登录成功:", user); // 可在此添加登录后的页面跳转等逻辑 }) .catch((error) => { const errorCode = error.code; const errorMessage = error.message; console.error("登录错误:", errorCode, errorMessage); alert(`登录失败:${errorMessage}`); }); })
内容的提问来源于stack exchange,提问作者Shane Honnor
相关产品推荐
相关产品推荐

