如何在 angular 中使用 firebase 身份验证获取新的访问令牌以与 Google Api 交互?

how to get a new acces token to interact with Google Api with firebase authentication in angular?

用户通过 firebasebase 提供商登录到我的 angular 应用程序。

new firebase.auth.GoogleAuthProvider()

先后

firebase.auth().getRedirectResult()

当应用访问时我只有一个token like

ya29.a0AfH6SMAYg1A1RLwrEGe19qozweR9AFXuLJwSHb4FzQvuXk-ObVa54mpErd09mb4G3***********

不久后就会过期。 如何像 official google documentation 所说的那样增加截止时间?

更新

firebase.auth().getRedirectResult().then(function(result) {

 if (result.credential) {
    // This gives you a Google Access Token.
    var token = result.credential.accessToken;
  }
  var user = result.user;
});

我想得到这个 token 但过期时间延长

在这里发现了一个类似的问题:

似乎唯一的办法就是使用 Google API JS 进行身份验证

解决方案:

步骤 1
我已经在我的 angular 项目中安装了 ng-gapi。 (并配置它)

第 2 步
通过 google ng-gapi 我登录了

 this.gapiService.getAuth()
  .subscribe((auth) => {
    auth.signIn().then(res => this.signInSuccessHandler(res));
  });

步骤 3:
我以 documentation said

身份手动登录 firebase

步骤 4:
现在通过 ng-gapi 我可以获得令牌

this.gapiService.getAuth().subscribe(x => {
  console.log(x.Od.$B);
});

(我不知道是否存在获取 x.Od.$B 的 poper 函数,但它有效)