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

Android端FirebaseUI集成Twitter登录失败:开发者错误求助

FirebaseUI集成Twitter登录抛出「开发者错误」问题解决

问题描述

使用FirebaseUI集成Google、Facebook登录功能正常,但添加Twitter登录时失败:点击Twitter登录按钮后可正常访问Twitter API,重定向URL处理也无问题,但应用内认证失败,抛出FirebaseUIException「开发者错误」。查看com.firebase.ui.auth.util.data.ProviderUtils类第229行,错误原因为「存在仅包含不支持登录方式的现有用户」。

已完成的配置步骤:

  • 在Firebase控制台添加Twitter提供商,复制重定向URL;
  • 创建Twitter应用,启用OAuth 1.0a和OAuth 2.0认证,填入Firebase重定向URL,复制API密钥及密钥密码;
  • 在Firebase控制台的Twitter提供商字段填入对应的API密钥和密钥密码。

Android端尝试过但无效的操作:

  • 在AndroidManifest中添加:
    android:usesCleartextTraffic="true"
    android:supportsRtl="false" tools:replace="android:supportsRtl"
  • 在Gradle仓库中添加:
    mavenLocal()
    maven { url 'https://maven.fabric.io/public' }
    maven { url 'https://maven.google.com' }
  • 在Gradle依赖中添加多种形式的com.twitter.sdk.android:twitter-core依赖;
  • 在strings.xml中添加Twitter密钥相关字符串。

疑问:当前是否仍可通过Twitter API在FirebaseUI中实现认证?若可以,正确操作方式是什么?不确定问题出在代码、Firebase控制台还是Twitter控制台。


解决方案

1. 清理冗余依赖,确认版本兼容性

FirebaseUI目前已不再依赖旧版Twitter Kit(com.twitter.sdk.android:twitter-core),直接通过OAuth 1.0a流程实现Twitter登录,请移除所有com.twitter.sdk.android:twitter-core相关的依赖配置,避免版本冲突。

同时确保使用最新版FirebaseUI Auth依赖:

implementation 'com.firebaseui:firebase-ui-auth:8.0.2' // 替换为当前最新稳定版本

2. 解决「现有用户不支持登录方式」核心问题

该错误说明Firebase用户列表中存在异常用户:

  • 登录Firebase控制台,进入「Authentication」→「用户」,检查是否存在仅关联Twitter但状态异常的用户,或关联了已禁用提供商的用户;
  • 测试阶段可直接删除这类异常用户,或手动为用户添加其他有效登录方式(如邮箱/密码)后再测试;
  • 确认FirebaseUI启动时已将Twitter加入授权提供商列表,示例代码:
    val providers = arrayListOf(
        AuthUI.IdpConfig.GoogleBuilder().build(),
        AuthUI.IdpConfig.FacebookBuilder().build(),
        AuthUI.IdpConfig.TwitterBuilder().build() // 必须添加此行
    )
    

3. 修正Twitter应用OAuth配置

  • 仅启用OAuth 1.0a:FirebaseUI当前只支持Twitter的OAuth 1.0a流程,关闭OAuth 2.0避免冲突;
  • 检查回调URL:确保Twitter应用中填写的回调URL与Firebase控制台显示的完全一致,包括大小写、结尾斜杠等细节;
  • 权限设置:Twitter应用权限至少保留read权限,无需额外写权限。

4. 简化Android端配置

  • 移除AndroidManifest中android:usesCleartextTraffic="true"和android:supportsRtl相关冗余配置,这些与Twitter登录无关;
  • 确认strings.xml中的twitter_consumer_key和twitter_consumer_secret完全匹配Twitter应用的API密钥和密钥密码,无多余空格或换行;
  • Gradle仓库仅保留必要配置,无需添加https://maven.fabric.io/public(Fabric已停止服务),标准配置如下:
    repositories {
        google()
        mavenCentral()
    }
    

结论

当前FirebaseUI仍支持Twitter登录,问题大概率出在依赖冲突、Twitter OAuth配置错误或Firebase用户列表存在异常用户,按上述步骤逐一排查即可解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:20:33