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

Unity应用Firebase登录遇DUPLICATE_RAW_ID内部错误求助

Firebase Auth登录报错「DUPLICATE_RAW_ID」排查思路(Unity环境)

我们基于Unity开发的应用,使用Firebase Auth实现登录功能,偶尔会触发SignInWithCredentialAsync报错,错误日志如下:

Firebase SignInWithCredentialAsync encountered an error: System.AggregateException: One or more errors occurred. (An internal error has occurred. [ DUPLICATE_RAW_ID ]) ---> Firebase.FirebaseException: An internal error has occurred. [ DUPLICATE_RAW_ID ] at Firebase.Auth.FirebaseAuth.SignInWithCredentialAsync (Firebase.Auth.Credential credential) [0x00000] in <00000000000000000000000000000000>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0 at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run () [0x00000] in <00000000000000000000000000000000>:0 at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00000] in <00000000000000000000000000000000>:0 --- End of inner exception stack trace --- ---> (Inner Exception #0) Firebase.FirebaseException: An internal error has occurred. [ DUPLICATE_RAW_ID ] at Firebase.Auth.FirebaseAuth.SignInWithCredentialAsync (Firebase.Auth.Credential credential) [0x00000] in <00000000000000000000000000000000>:0 at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <00000000000000000000000000000000>:0 at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run () [0x00000] in <00000000000000000000000000000000>:0 at System.Threading.ThreadPoolWorkQueue.Dispatch () [0x00000] in <00000000000000000000000000000000>:0 <--- <>c__DisplayClass17_1:b__1(Task`1) Firebase.Extensions.<>c__DisplayClass4_1`1:b__1() Firebase.<>c__DisplayClass5_0`1:b__0() Firebase.ExceptionAggregator:Wrap(Action) Firebase.Dispatcher:PollJobs() Firebase.Platform.FirebaseHandler:Update()

针对这个罕见但每日出现的错误,整理以下排查和解决思路:

  • 检查第三方登录凭证的重复关联
    这个错误核心原因大概率是同一第三方身份提供商(如Google、Apple)的账号raw ID,被绑定到了两个不同的Firebase Auth用户记录。当用户再次用该第三方账号登录时,Firebase无法确定关联目标,触发报错。可以登录Firebase控制台,进入「Authentication」-「用户」页面,搜索用户的第三方登录信息,核实是否存在同一raw ID对应多个Firebase用户的情况。

  • 优化登录异常分支处理
    捕获到DUPLICATE_RAW_ID错误时,可尝试将凭证与当前已登录用户关联,或引导用户进行账号合并:

    try
    {
        var authResult = await FirebaseAuth.DefaultInstance.SignInWithCredentialAsync(credential);
        // 正常登录逻辑
    }
    catch (Firebase.FirebaseException ex)
    {
        if (ex.Message.Contains("DUPLICATE_RAW_ID"))
        {
            var currentUser = FirebaseAuth.DefaultInstance.CurrentUser;
            if (currentUser != null)
            {
                // 尝试将凭证与当前用户绑定
                await currentUser.LinkWithCredentialAsync(credential);
                // 处理账号合并后的业务逻辑
            }
            else
            {
                // 提示用户存在重复账号,引导手动处理
            }
        }
        else
        {
            // 处理其他Firebase认证错误
        }
    }
    
  • 升级Firebase Unity SDK
    确认当前使用的Firebase Unity SDK版本是否为最新稳定版,旧版本可能存在边缘场景的bug,升级SDK有可能修复该问题。

  • 排查用户操作场景
    统计报错用户的操作路径,检查是否存在快速重复点击登录按钮、频繁切换账号、多设备同时登录同一第三方账号等情况,这类操作可能导致凭证重复提交触发错误。可在登录按钮逻辑中添加防重复提交限制,比如点击后禁用按钮直到请求完成。

  • 联系Firebase技术支持
    如果以上方法都无法解决,收集报错用户的UID、第三方登录提供商类型、报错时间等信息,提交给Firebase技术支持,协助排查后台用户记录的异常情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:14:53