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

Unity集成Firebase Firestore初始化异常:模拟器正常真机失败求助

Unity Firebase Firestore 安卓真机初始化失败排查方案
  • 放弃手动硬编码AppOptions,改用google-services.json自动配置
    你当前手动填写AppOptions的方式在安卓真机极易出现配置不匹配问题。Unity集成Firebase安卓端的标准流程是:将Firebase控制台下载的google-services.json放到项目Assets/Plugins/Android目录下,Firebase会自动读取配置,无需手动创建AppOptions。修改初始化代码为:

    void Start()
    {
        FirebaseApp.CheckAndFixDependenciesAsync().ContinueWithOnMainThread(task => {
            if(task.Result == DependencyStatus.Available){
                // 初始化Firestore实例
                FirebaseFirestore db = FirebaseFirestore.DefaultInstance;
                Debug.Log("Firebase 及 Firestore 初始化成功");
            }
            else{
                Debug.LogError("无法解析Firebase依赖: " + task.Result);
            }
        });
    }
    
  • 检查安卓Debug签名的SHA-1是否已添加到Firebase控制台
    模拟器用的是默认调试签名,而真机Debug APK用的是Unity自带的debug keystore(或你自定义的),必须把该签名的SHA-1添加到Firebase控制台:

    1. 打开Unity的Player Settings > Publishing Settings > Keystore Manager,查看Debug Keystore的路径
    2. 用Java的keytool工具生成SHA-1:keytool -list -v -keystore [你的debug keystore路径] -alias androiddebugkey -storepass android -keypass android
    3. 把生成的SHA-1添加到Firebase控制台的项目设置 > 应用 > 安卓应用 > 签名证书指纹中
  • 确认安卓Manifest包含必要权限
    确保Assets/Plugins/Android/AndroidManifest.xml里有网络权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    
  • 检查Firebase SDK与Unity版本的兼容性
    确保你导入的Firebase SDK版本和当前Unity版本匹配,建议用Firebase官方推荐的对应版本SDK包,版本不匹配是真机运行失败的常见原因。

  • 调整初始化时机
    把初始化代码从Awake移到Start方法中,避免Unity启动初期依赖未加载完成的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:36:25