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

Unity中调用FirebaseDatabase.DefaultInstance.RootReference获取实例失败求助

Firebase实时数据库实例获取失败的排查与解决方案

基础配置核查

  • 确认google-services.json放置路径为Assets/Plugins/Android,文件名无修改,Unity打包流程会自动读取该文件内的配置项。
  • 登录Firebase控制台,检查实时数据库是否已启用,测试阶段可临时将数据库规则设为全开放(后续记得改回安全规则):
    { "rules": { ".read": true, ".write": true } }
    

代码逻辑修正

Firebase初始化是异步操作,直接在Start方法同步调用FirebaseDatabase.DefaultInstance大概率会失败,需等待依赖初始化完成后再操作:

void Start()
{
    Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
        var dependencyStatus = task.Result;
        if (dependencyStatus == Firebase.DependencyStatus.Available)
        {
            // 依赖初始化完成,安全获取数据库实例
            var database = FirebaseDatabase.DefaultInstance;
            var rootRef = database.RootReference;
            Debug.Log("成功获取数据库根引用");
        }
        else
        {
            Debug.LogError($"Firebase依赖初始化失败: {dependencyStatus}");
        }
    });
}

Gradle配置验证

  • 确保Assets/Plugins/Android/mainTemplate.gradle中已添加正确的依赖(版本号可使用Firebase官方最新稳定版):
    implementation 'com.google.firebase:firebase-database:20.3.0'
    implementation 'com.google.firebase:firebase-core:21.1.1'
    
  • 检查Unity Player设置(Android平台):确认「Custom Main Gradle Template」已勾选,保证修改的gradle配置会被打包流程采纳。

缓存清理与重建

  • 清理Unity缓存:点击菜单栏Edit > Clear All Player Prefs,删除项目根目录下的Library文件夹(操作前建议备份项目),之后重新导入Firebase SDK。
  • 完全重新构建APK:旧的构建缓存可能导致配置不生效,彻底清理后重新打包测试。

日志排查

查看Unity控制台的错误日志,重点搜索含「Firebase」「Database」的条目,比如API密钥无效、数据库URL不匹配这类提示,通常能直接定位问题根源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:03:25