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

Google Workspace修改邮箱后Firebase Auth读取旧用户信息如何解决?

问题根因
  • Firebase Auth 侧的用户 Profile 为独立存储,不会自动同步 Google Workspace 等第三方身份提供商的信息变更。用户修改 Workspace 邮箱后,Google 侧账号信息已更新,但 Firebase 仅会在首次绑定 Google 账号时拉取一次用户信息,后续无主动触发同步操作就会一直保留历史数据。
  • 安卓端 Firebase SDK 会在本地缓存 currentUser 对象的所有属性,即便 Firebase 后端信息已更新,客户端未主动触发刷新的情况下,读取到的仍是本地缓存的旧数据。
修复责任判定

该问题不需要管理员/Google Workspace 侧做额外配置,仅需应用侧调整逻辑即可完全修复。

修复方案

登录流程新增信息同步逻辑

在用户完成谷歌账号登录、拿到最新的账号信息后,主动同步到 Firebase 用户体系中,同时刷新本地缓存,示例代码如下:

val googleAccount = // 登录流程获取到的GoogleSignInAccount实例,包含最新账号信息
val cred = GoogleAuthProvider.getCredential(googleAccount.idToken, null)
FirebaseAuth.getInstance().signInWithCredential(cred)
    .addOnSuccessListener { authResult ->
        val firebaseUser = authResult.user ?: return@addOnSuccessListener
        // 更新用户名称、头像
        val profileUpdate = UserProfileChangeRequest.Builder()
            .setDisplayName(googleAccount.displayName)
            .setPhotoUri(googleAccount.photoUrl)
            .build()
        firebaseUser.updateProfile(profileUpdate)
            .addOnSuccessListener {
                // 更新用户邮箱,刚登录完成的会话状态满足更新邮箱的安全校验要求
                firebaseUser.updateEmail(googleAccount.email)
                // 强制刷新本地缓存和idToken
                firebaseUser.reload()
                firebaseUser.getIdToken(true)
            }
    }

日常场景补全刷新逻辑

可在应用冷启动、用户进入个人中心等场景主动调用 FirebaseAuth.getInstance().currentUser?.reload() 刷新本地缓存,避免用户中途修改账号信息后长时间不同步。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 19:00:02