我正在使用他们的Twitter帐户向Firebase验证用户。但是我不知道如何获得UserName
。
这是我的代码。我已经尝试了一切...
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
IdpResponse response = IdpResponse.fromResultIntent(data);
//mAuth.getAccessToken()
//AuthResult rs = FirebaseAuth;
if (resultCode == RESULT_OK) {
// Successfully signed in
user = FirebaseAuth.getInstance().getCurrentUser();
AuthResult rs = (AuthResult) response.getCredentialForLinking();
String uno = rs.getAdditionalUserInfo().getUsername();
Toast.makeText(getApplicationContext(), uno,Toast.LENGTH_SHORT).show();
// Intent i = new Intent(MainActivity.this,Main2Activity_tapeo.class);
// startActivity(i);
// ...
} else {
Toast.makeText(getApplicationContext(),response.getError().getErrorCode()+" "+ response.getError().getErrorCode(),Toast.LENGTH_LONG).show();
// Sign in failed. If response is null the user canceled the
// sign-in flow using the back button. Otherwise check
// response.getError().getErrorCode() and handle the error.
// ...
}
}
}`
无法使用以下代码从FirebaseUser
对象获取Twitter帐户的用户名:
Firebaseuser firebaseuser = FirebaseAuth.getInstance().getCurrentUser();
String displayName = firebaseuser.getDisplayName(); //Is not possible
FirebaseUser
对象不提供此类信息。但是,您仍然可以使用附加用户信息的getUsername()方法来获取用户名:
如果提供者是GitHub或Twitter,则返回用户名。
要查看代码中的外观,请查看有关如何进行handle the sign-in flow with the Firebase SDK的官方文档,您将在其中找到一个有效的示例。
看,你必须打电话给getPendingAuthResult():
firebaseAuth.getAdditionalUserInfo();
为了能够获得用户名。