You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 16:42:44