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

Android端Firebase AuthUI的Twitter登录失败 如何指定Browser API Key?

核心结论

AuthUI.IdpConfig.TwitterBuilder 未提供公开方法直接指定单独的API Key,无法直接通过构造器传入Browser API Key。

可行解决方案

以下两个方案均不会影响原有其他Firebase服务的调用:

  • 方案1:调整原有API Key的访问限制
    无需更换API Key,直接在Google Cloud控制台修改你当前安卓项目使用的API Key的限制规则:
    在原有「安卓应用」限制的基础上,新增「HTTP 引荐来源」限制,添加你的Firebase认证回调域名规则 https://<你的项目ID>.firebaseapp.com/* 即可。该调整后,原有安卓端服务调用不受影响,同时Twitter登录发起的回调请求也会被放行。
  • 方案2:配置双FirebaseApp实例,单独给Auth服务指定Browser API Key
    你可以在同一个安卓应用内初始化多个独立的FirebaseApp实例,不同实例使用不同的API Key:
    1. 保留默认初始化的FirebaseApp实例,继续使用原有安卓受限API Key,供给除登录外的其他Firebase服务使用
    2. 手动初始化一个专门用于Auth认证的FirebaseApp实例,初始化参数填入Browser API Key、项目ID等配置
    3. 调用AuthUI时指定使用这个专门的认证实例发起登录请求
      示例代码如下:
    // 初始化专门用于认证的Firebase实例
    FirebaseOptions authOptions = new FirebaseOptions.Builder()
        .setApiKey("你的Browser API Key")
        .setApplicationId("你的应用ID")
        .setProjectId("你的项目ID")
        .build();
    FirebaseApp authApp = FirebaseApp.initializeApp(this, authOptions, "auth专用实例");
    
    // 用该实例创建Twitter登录配置
    AuthUI.IdpConfig twitterConfig = new AuthUI.IdpConfig.TwitterBuilder().build();
    Intent signInIntent = AuthUI.getInstance(authApp)
        .createSignInIntentBuilder()
        .setAvailableProviders(Arrays.asList(twitterConfig))
        .build();
    startActivityForResult(signInIntent, RC_SIGN_IN);
    
    该方案完全隔离不同服务的API Key使用规则,不会对原有其他服务调用产生任何影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:12:03