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

Firebase Twitter登录如何获取Token与Secret?Android开发疑问

解决Firebase Auth Twitter登录获取Token和Secret的问题

问题出在authResult.getCredential()返回的是通用的AuthCredential父类,而getAccessToken()和getSecret()是Twitter登录专属的TwitterAuthCredential子类才有的方法,直接调用父类对象会找不到这些方法。

你需要把获取到的AuthCredential强转为TwitterAuthCredential,之后就能调用对应的方法了:

Java 代码示例

firebaseAuth
    .startActivityForSignInWithProvider(this, provider.build())
    .addOnSuccessListener(new OnSuccessListener<AuthResult>() {
        @Override
        public void onSuccess(AuthResult authResult) {
            // 先判断类型再强转,避免ClassCastException
            if (authResult.getCredential() instanceof TwitterAuthCredential) {
                TwitterAuthCredential twitterCredential = (TwitterAuthCredential) authResult.getCredential();
                
                // 获取Token和Secret
                String accessToken = twitterCredential.getAccessToken();
                String secret = twitterCredential.getSecret();
                
                // 此处可将token和secret发送至后端服务器
            }
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            // 处理登录失败逻辑
        }
    });

Kotlin 代码示例

firebaseAuth
    .startActivityForSignInWithProvider(this, provider.build())
    .addOnSuccessListener { authResult ->
        // 安全强转
        (authResult.credential as? TwitterAuthCredential)?.let { twitterCredential ->
            // 获取Token和Secret
            val accessToken = twitterCredential.accessToken
            val secret = twitterCredential.secret
            
            // 发送至后端服务器
        }
    }
    .addOnFailureListener { e ->
        // 处理登录失败
    }

内容的提问来源于stack exchange,提问作者dev.farmer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 11:06:48