Unity Android Firebase Google Auth无法找到google-services.json问题求助
Unity 2022.3.1f1 Android端Google登录认证配置问题
环境说明
- Unity版本:2022.3.1f1
- 已集成Firebase模块:FirebaseAnalytics、FirebaseAuth、FirebaseDatabase
- 已安装插件:Google Sign-In 1.0.4
- 当前状态:Firebase实时数据库可正常运行
问题列表
- 如何让Google认证正常工作?
- 为何
google-services.json在手机端的Assets/StreamingAssets、Assets等目录均无法被识别? - 为何Firebase实时数据库无需
google-services.json即可工作,但认证不行?
已尝试操作
- 将
google-services.json从Assets目录移至Assets/StreamingAssets:编辑器可识别,数据库正常工作,但手机端报错Failed to read Firebase options from the app's resources... - 显式配置
Firebase.AppOptions:手机端数据库恢复正常,登录页面可弹出,但选择账户后仍报错,日志包含Failed to read Firebase options...及g_methods_cached错误 - 尝试过重命名
.androidlib文件夹、更换文件位置、重装Firebase包及Google Sign-In插件,问题未解决
问题解答
1. 让Google认证正常工作的步骤
第一步:规范google-services.json的放置与同步
- 把
google-services.json放回Assets根目录,不要手动移到StreamingAssets,Firebase插件默认只会识别根目录的该文件 - 打开Unity的Firebase控制台窗口(
Window > Firebase > Firebase Console),重新同步项目配置,让插件自动处理文件的打包逻辑 - 确认文件内
client[0].oauth_client的Android配置中,package_name和项目包名完全一致(注意大小写),同时Firebase控制台已添加对应签名证书的SHA-1指纹
第二步:修正显式初始化逻辑
如果用了Firebase.AppOptions手动初始化,必须确保Auth模块也基于该配置初始化,不能让它自动读取:
Firebase.AppOptions options = new Firebase.AppOptions { ApiKey = "你的项目ApiKey", AuthDomain = "你的项目AuthDomain", DatabaseUrl = "你的项目DatabaseUrl", ProjectId = "你的项目ProjectId", AppId = "你的项目AppId" }; // 先初始化Firebase App Firebase.FirebaseApp app = Firebase.FirebaseApp.Create(options); // 基于该App初始化Auth模块 Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.GetAuth(app);
第三步:清理缓存后重新构建
- 删除Unity项目下的
Library、Temp、obj文件夹,重启Unity - 选择
Export Project导出Android项目,用Android Studio打开,检查app目录下是否存在google-services.json,确认后再构建APK
2. google-services.json手机端无法识别的原因
- Firebase插件默认仅会将
Assets根目录的google-services.json复制到Android项目的app目录,手动移到StreamingAssets会跳过插件的自动处理流程,导致打包后APK内没有该文件 - Unity的
Library缓存残留旧配置,会覆盖新的文件识别逻辑 - 自定义AndroidManifest或修改打包流程,破坏了Firebase的自动配置逻辑
3. 实时数据库无需配置但认证不行的原因
- 如果实时数据库设置了公开读写规则,可以直接通过公开URL访问,不需要项目配置就能连接,但这属于不安全的临时做法
- Firebase Auth必须依赖
google-services.json里的AuthDomain、ApiKey、OAuth客户端ID等配置,才能和Google认证服务器建立关联,没有这些配置,认证请求无法路由到你的Firebase项目,因此必须完成初始化配置
内容的提问来源于stack exchange,提问作者Oliver
相关产品推荐
相关产品推荐

