获取 Google 访问令牌

Get Google access token

要在 firebase 身份验证登录后获得 Google 访问令牌,我知道我可以简单地这样做:

    firebase.auth().signInWithPopup(provider).then(function(result) {
      var token = result.credential.accessToken;
}

但是如果用户已经通过身份验证并且我需要令牌怎么办?有什么方法可以从 Firebase 身份验证中提取它吗?

我查看了 authState 的每个值,但找不到我一直在寻找的 google 访问令牌。

您无法从 onAuthStateChanged 侦听器或 currentUser 获取访问令牌。只能在调用signInWithPopupreauthenticateWithPopuplinkWithPopupgetRedirectResult等认证后立即获取。Firebase Auth不为用户管理OAuth令牌。如果您非常喜欢此功能,请在 Firebase 论坛上提交功能请求:https://groups.google.com/forum/#!forum/firebase-talk

您也可以只使用 GApi 库获取 Google 访问令牌并将其传递给 Firebase 以通过 signInWithCredential 登录。这里的优势是 GApi 将为您管理该 OAuth 令牌。