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
相关产品推荐
相关产品推荐

