根据Firebase文档,要在成功登录时获取OAuth访问令牌,我们可以从getCredential()方法获取,如下所示:验证结果.获取凭证().获取访问令牌()
代码:根据火源:
firebaseAuth
.startActivityForSignInWithProvider(/* activity= */ this, provider.build())
.addOnSuccessListener(
new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult authResult) {
// User is signed in.
// IdP data available in
// authResult.getAdditionalUserInfo().getProfile().
// The OAuth access token can also be retrieved:
// authResult.getCredential().getAccessToken().
}
})
.addOnFailureListener(
new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Handle failure.
}
});
但是,当我尝试像这样访问令牌时,它只是简单地说该方法不存在。
pendingResultTask
?.addOnSuccessListener { authResult ->
val username = authResult.additionalUserInfo?.username
val accessToken = authResult.getCredential().getAccessToken()
Toast.makeText(
activity,
"username: $username, accessToken: $accessToken",
Toast.LENGTH_LONG
).show()
navigateToHomeScreen()
}
?.addOnFailureListener { exception ->
Toast.makeText(
activity,
"Something Went Wrong: ${exception.message}",
Toast.LENGTH_LONG
).show()
}
在这段代码中,我不能使用getAccessToken()
方法,错误:未解析的引用
为什么我无法访问getAccessToken()
方法?
2条答案
按热度按时间qoefvg9y1#
AuthResult#getCredential()方法返回一个AuthCredential类型的对象,据我所知,那里没有getAccessToken()方法。
但是,这里有一个注解行,内容如下:
还可以检索OAuth访问令牌。
因此,您应该查看OAuthCredential类,该类公开了getAccessToken()方法。
v2g6jxz62#
调用以下方法以获取访问令牌