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

如何使用Firebase的useAuthState获取GitHub登录名

Firebase GitHub登录获取账号登录名解决方案

useAuthState返回的Firebase User对象仅同步基础公开字段,GitHub登录名属于第三方提供方的自定义返回字段,不会默认包含在返回结果中,按以下步骤获取即可:

  • 登录阶段抓取GitHub登录名并存储
    在触发GitHub登录的逻辑(signInWithPopup或signInWithRedirect)中,登录成功后调用getAdditionalUserInfo方法即可拿到GitHub返回的完整用户信息,其中profile.login字段就是你需要的GitHub登录名,拿到后存入全局状态或localStorage方便跨组件调用,参考代码:
import { getAuth, signInWithPopup, GithubAuthProvider, getAdditionalUserInfo } from "firebase/auth";

const auth = getAuth();
const githubProvider = new GithubAuthProvider();

signInWithPopup(auth, githubProvider)
  .then((res) => {
    const githubExtraInfo = getAdditionalUserInfo(res);
    const githubLoginName = githubExtraInfo?.profile?.login;
    if (githubLoginName) {
      // 存入本地存储或者全局状态管理工具(Redux/Zustand等)
      localStorage.setItem('github_login_name', githubLoginName);
    }
  })

如果你使用的是Firebase v8版本,对应获取写法为res.additionalUserInfo.profile.login,其余逻辑不变。

  • 组件内调用
    需要使用登录名的组件直接从你存储的位置读取即可,无需依赖useAuthState的返回结果。如果有其他GitHub用户字段需要获取,也可以在githubExtraInfo.profile中同步提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 05:36:03