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

Unity2022.3.11使用Firebase云函数遇"USE_AUTH_EMULATOR not set."冻结如何解决?

错误原因及解决办法

错误原因

"USE_AUTH_EMULATOR not set." 错误是因为你在本地开发时启用了Firebase模拟器(如Functions模拟器),但未配置Firebase Auth对应的模拟器连接参数,导致云函数调用时无法完成身份验证流程,进而引发程序冻结。

解决办法

分两种场景处理:

场景1:本地开发需要使用Firebase模拟器

  1. 确保已启动Firebase Auth模拟器(默认端口为9099,Functions模拟器默认端口为5001)
  2. 在初始化Auth和Functions实例后,添加模拟器配置代码,注意要在调用身份验证或云函数前完成配置:
await FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>
{
    if(task.Result == DependencyStatus.Available)
    {
        auth = FirebaseAuth.DefaultInstance;
        func = FirebaseFunctions.DefaultInstance;

        // 配置Auth模拟器
        auth.UseEmulator("localhost", 9099);
        // 配置Functions模拟器(如果使用)
        func.UseEmulator("localhost", 5001);
    }
    else
    {
        Debug.Log(task.Result.ToString());
        return;
    }
});

场景2:生产环境或不需要使用模拟器

  1. 检查代码中是否误加了模拟器相关配置,移除所有UseEmulator调用
  2. 确保google-services.json(Android)或GoogleService-Info.plist(iOS)是生产环境的配置文件,未被模拟器配置修改

额外代码问题提示

你的代码存在异步流程漏洞:CheckAndFixDependenciesAsync().ContinueWith的回调是异步执行的,外层的try块可能在auth实例初始化完成前就运行,导致auth为空引发潜在错误。建议改用await替代ContinueWith,保证流程顺序:

var dependencyStatus = await FirebaseApp.CheckAndFixDependenciesAsync();
if(dependencyStatus == DependencyStatus.Available)
{
    auth = FirebaseAuth.DefaultInstance;
    func = FirebaseFunctions.DefaultInstance;
    // 模拟器配置放在这里
}
else
{
    Debug.Log(dependencyStatus.ToString());
    return;
}

try
{
    if(auth.CurrentUser == null || string.IsNullOrEmpty(auth.CurrentUser.UserId))
    {
        await auth.SignInAnonymouslyAsync();
    }
    else
    {
        Debug.Log($"Already auth {auth.CurrentUser.UserId}");
    }
}
catch(Exception e)
{
    Debug.LogError($"Auth error: {e.Message}");
}

var task = func.GetHttpsCallable("task").CallAsync(idToken);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 11:08:23