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

onAuthStateChanged参数报错:实参数量不符致TypeScript编译失败

问题原因与解决方法

你的代码报错核心原因是调用onAuthStateChanged时参数顺序完全错误。

Firebase的onAuthStateChanged函数正确的参数顺序是:

  • 第一个参数必须是Firebase Auth实例(即你代码里的auth)
  • 第二个参数才是登录状态变化的回调函数

你直接把回调函数作为第一个参数传入,TypeScript会将这个回调判定为函数要求的nextOrObserver参数,但此时你缺少了必填的Auth实例参数,因此才会抛出“Expected 2-4 arguments, but got 1”的错误——函数要求至少传入Auth实例和回调两个参数,你只传了一个回调。

另外,你的回调函数参数也存在问题:onAuthStateChanged的回调仅接收一个参数(当前的user对象),不存在第二个_next参数,这个参数是多余的。

修正后的代码:

// Check if user is logged in
onAuthStateChanged(auth, async (user: any) => {
  if (user) {
    console.log(user);
  } else {
    const result = await signInWithPopup(auth, provider);
    console.log(result);
  }
});

调整参数顺序并移除多余的回调参数后,即可解决TypeScript编译错误。

内容的提问来源于stack exchange,提问作者Markussim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:18:17