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

React+Firebase项目如何接入Google One Tap登录并关联Firebase Auth

问题根因

你遇到的auth/argument-error错误是因为GoogleAuthProvider.credential()方法要求传入idToken和/或accessToken参数,而你直接将Google One Tap返回的完整response对象传入该方法,参数格式不符合要求,导致登录流程中断,因此Firebase的认证状态没有更新,自然不会触发onAuthStateChanged监听函数。

修复方案

仅需要调整useGoogleOneTapLogin的onSuccess回调逻辑,从返回的response中提取idToken传入credential方法即可:

useGoogleOneTapLogin({
  onError: error => console.log(error),
  onSuccess: response => {
    console.log(response);
    // 从response中提取idToken,仅传入该字段即可
    const credential = provider.credential(response.credential);
    auth.signInWithCredential(credential)
      .then(result => {
        const { user } = result;
        console.log(user);
      })
      // 建议添加错误捕获,避免异常静默丢失
      .catch(err => console.error('登录失败:', err));
  },
  googleAccountConfigs: {
    client_id: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  }
});

修改完成后,Google One Tap登录流程可以正常执行,Firebase认证状态更新后,你现有代码中的onAuthStateChanged监听会自动触发,不需要额外调整其他认证逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:27:02