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

Android应用Firebase UI Auth登录Intent卡顿,认证选择界面无法加载

Firebase UI Auth 登录Intent卡顿/界面停滞问题排查方案

1. 检查依赖版本兼容性

Firebase UI Auth与Firebase Auth有严格的版本对应关系,你当前的版本组合(firebase-auth:21.1.0 + firebase-ui-auth:8.0.2)虽在官方兼容范围内,但部分小版本可能存在隐性bug。建议升级到两者的最新稳定兼容版本:

// 替换为最新兼容版本
implementation 'com.google.firebase:firebase-auth:22.3.1'
implementation 'com.firebaseui:firebase-ui-auth:8.0.2'

注:firebase-ui-auth 8.x系列最高兼容到firebase-auth 22.x,升级后需同步清理项目构建缓存。

2. 确认操作在主线程执行

启动登录Intent属于UI操作,必须在主线程调用。检查调用createSignInIntent的时机,确保未在子线程中执行:

// 确保调用代码在主线程
runOnUiThread(() -> createSignInIntent(userEmail));

3. 排查资源加载导致的卡顿

你设置的登录页logo(R.drawable.unnamed)如果尺寸过大或分辨率过高,会导致低配置设备加载时内存占用过高,引发界面停滞。

  • 临时注释掉.setLogo(R.drawable.unnamed)代码,测试是否仍出现卡顿
  • 若确认是图片问题,将图片压缩至合适尺寸(建议登录页logo不超过200x200dp),并使用WebP格式优化体积

4. 验证Firebase初始化完整性

确保在Application类中完成Firebase初始化,避免AuthUI初始化延迟:

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        FirebaseApp.initializeApp(this);
    }
}

同时检查AndroidManifest.xml中是否注册了该Application类。

5. 简化登录Intent配置

你设置了.setAlwaysShowSignInMethodScreen(true),但当前仅配置了Email一种登录提供商,该设置可能触发不必要的界面渲染逻辑。尝试移除该配置,直接跳转到Email登录界面:

Intent signInIntent = AuthUI.getInstance()
        .createSignInIntentBuilder()
        .setAvailableProviders(providers)
        .setLogo(R.drawable.unnamed)
        // 移除该行配置
        // .setAlwaysShowSignInMethodScreen(true)
        .build();

6. 排查设备网络与权限问题

部分用户的网络环境可能存在限制,导致Firebase Auth无法正常获取配置。检查应用是否添加了必要的网络权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 04:30:47