kotlin 使用Firebase进行Github登录时无法访问OAuth访问令牌方法

6gpjuf90  于 2022-12-30  发布在  Kotlin
关注(0)|答案(2)|浏览(121)

根据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()方法?

qoefvg9y

qoefvg9y1#

AuthResult#getCredential()方法返回一个AuthCredential类型的对象,据我所知,那里没有getAccessToken()方法。
但是,这里有一个注解行,内容如下:
还可以检索OAuth访问令牌。
因此,您应该查看OAuthCredential类,该类公开了getAccessToken()方法。

v2g6jxz6

v2g6jxz62#

// token from Apple with authResult.getCredential().
OAuthCredential authCredential= (OAuthCredential) authResult.getCredential();

调用以下方法以获取访问令牌

String accessToken=authCredential.getAccessToken()

相关问题