Meta Quest 2上Firebase Auth状态显示“Unavailable invalid”问题求助
针对你在Meta Quest 2上遇到FirebaseAuth的dependencyStatus显示“unavailable invalid”(Windows编辑器、安卓手机均正常)的问题,除了你已经尝试的操作外,可从以下方向排查:
检查Android API级别适配
确认Unity项目的Player Settings中,Minimum API Level和Target API Level是否符合当前Firebase SDK的要求(比如Firebase 12.0+通常要求Target API Level至少33)。Quest 2的系统基于Android 10/11,需确保API级别设置覆盖设备系统版本,且与Firebase SDK兼容。验证ARM64架构配置
Quest 2为ARM64架构,进入UnityBuild Settings->Player Settings->Other Settings,确认Architecture设置为ARM64,而非ARMv7或通用架构。Firebase SDK若缺少对应架构的预编译库,会导致依赖加载失败。排查Oculus平台特定配置
- 检查Oculus开发者后台的应用配置,确认包名、签名信息与Firebase控制台完全一致;
- 确认AndroidManifest.xml中已添加必要权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - 尝试关闭Quest 2的开发者模式后重新开启,或重置设备的应用权限。
调整Firebase SDK版本
部分Firebase SDK版本对VR平台存在兼容性bug,尝试降级到社区验证过兼容Quest的版本(比如Firebase Auth 9.0.0左右的稳定版),或升级到最新正式版,同时确保所有Firebase组件版本统一。优化代码逻辑并增加日志
你的代码中未直接打印dependencyStatus的具体值,建议补充日志明确状态,同时避免依赖未就绪时执行Auth操作:async void Start() { Debug.Log("Checking dependencies"); var dependencyStatus = await FirebaseApp.CheckAndFixDependenciesAsync(); Debug.Log($"Dependency Status: {dependencyStatus}"); if (dependencyStatus != DependencyStatus.Available) { Debug.LogError($"Firebase dependencies error: {dependencyStatus}"); return; } Debug.Log("Logging"); var auth = FirebaseAuth.DefaultInstance; await auth.SignInAnonymouslyAsync(); Debug.Log("Logged!"); auth.SignOut(); Debug.Log("Unlogged!"); }禁用代码混淆测试
若开启了ProGuard/R8混淆,可能误移除Firebase的核心类。暂时关闭Player Settings中的Minify选项,重新构建并测试,若恢复正常则需在混淆规则中添加Firebase的保留规则:-keep class com.google.firebase.** { *; } -keep class com.google.android.gms.** { *; }
内容的提问来源于stack exchange,提问作者Luís Remor

