You need to enable JavaScript to run this app. Unity 2020.3.1f1无法连接Firebase Auth匿名登录问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Unity 2020.3.1f1无法连接Firebase Auth匿名登录问题求助

代码问题排查

  • 首先修正语法错误:Awake方法中输出依赖错误的日志行存在变量名错误,将dependency status改为正确的变量名dependencyStatus,变量名中的空格会导致编译异常,阻断后续初始化逻辑执行。
  • 补充防重复登录逻辑:当前在AuthStateChanged事件中直接触发匿名登录,事件多次触发会导致重复调用登录接口,新增登录状态标记避免该问题,同时补充内层异常打印获取真实报错原因:
// 新增私有变量
private bool _isLoggingIn = false;

// 修改AuthStateChanged中的登录触发逻辑
else
{
    if (!_isLoggingIn)
    {
        _isLoggingIn = true;
        StartCoroutine(SignAnonymously());
    }
}

// 修改SignAnonymously的异常处理分支
if (loginTask.Exception != null)
{
    _isLoggingIn = false;
    // 打印内层异常获取真实报错原因
    var innerException = loginTask.Exception.Flatten().InnerException;
    Debug.LogWarning($"登录失败,错误详情:{innerException?.Message}");
}
else
{
    _isLoggingIn = false;
    User = loginTask.Result;
    Debug.LogFormat("User signed in successfully: {0} ({1})", User.DisplayName, User.UserId);
}

配置与环境排查

  • 确认Firebase控制台Auth页面的匿名登录开关已启用,该功能默认关闭,未开启会直接返回权限错误。
  • 如果你打包的是iOS端,除了核对google-services.json,还要确认GoogleService-Info.plist文件配置正确且已导入到Unity项目中。
  • 若使用IL2CPP打包,确认项目中已有link.xml文件并添加了Firebase Auth的代码保留规则,避免IL2CPP裁剪掉Auth相关运行时代码:
<linker>
  <assembly fullname="Firebase.Auth" preserve="all"/>
  <assembly fullname="Firebase.Core" preserve="all"/>
</linker>
  • 测试阶段关闭系统/浏览器代理,多数代理会拦截Firebase Auth的请求,导致连接超时。
  • 确认Firebase SDK版本一致,Auth和Database SDK如果版本不匹配也会出现部分功能正常、部分功能异常的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:30:04