Firebase手机号登录突然失效,报keyset not found错误求助
解决方案:Firebase UI手机号登录的Keyset错误与验证码接收问题
针对你遇到的keyset not found错误、验证码无法接收及浏览器空白页跳转问题,以下是可行的解决步骤:
1. 清除应用缓存并重装
密钥集存储在应用的SharedPreferences中,可能因缓存损坏导致读取失败:
- 进入设备设置 → 应用管理 → 找到你的应用 → 清除数据和缓存
- 卸载应用后重新安装,触发系统重新生成密钥集
2. 验证Google Play Integrity配置完整性
- 确认Firebase控制台已启用Play Integrity API(进入项目 → 产品 → Play Integrity)
- 确保应用已上传至Google Play Console(至少内部测试版本),Play Integrity在未发布的本地构建中可能存在验证异常(测试号码不受此限制是因为测试号走了豁免逻辑)
3. 升级Firebase UI版本
你当前使用的8.0.2版本较旧,可能与新集成的Play Integrity存在兼容性问题:
- 将Firebase UI依赖升级至最新稳定版(如
com.firebaseui:firebase-ui-auth:10.0.0) - 同步Gradle后,执行
Clean Project和Rebuild Project操作
4. 确保Firebase Auth初始化正常
在自定义Application类中提前初始化FirebaseApp,避免组件加载延迟:
public class MyApp extends Application { @Override public void onCreate() { super.onCreate(); FirebaseApp.initializeApp(this); } }
并在AndroidManifest.xml中指定该Application:
<application android:name=".MyApp" ...> ... </application>
5. 修复浏览器跳转空白页问题
该问题源于重定向URL配置异常:
- 检查Firebase控制台 → 认证 → 登录方法 → 手机号,确认已正确配置应用包名和SHA1/SHA256指纹
- 确保AndroidManifest.xml中存在处理Firebase Auth重定向的Activity配置(Firebase UI通常自动生成,若缺失需手动添加):
<activity android:name="com.firebase.ui.auth.ui.RedirectHandlerActivity" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:host="你的项目ID.firebaseapp.com" android:path="/__/auth/handler" android:scheme="https" /> </intent-filter> </activity>
内容的提问来源于stack exchange,提问作者Miriana Itani
相关产品推荐
相关产品推荐

