Android FirebaseAuth 未记录的`getAccessToken`

Dan*_*l F 6 android firebase-authentication

我找不到有关该getAccessToken方法的任何信息,可以在FirebaseAuth.getInstance().getAccessToken(boolean)

我的 Android 应用需要从 Firebase 获取 JWT 访问令牌(“idToken”),以便让我的自定义后端能够对用户进行身份验证(注册/登录)。

一些玩耍的人告诉我

String jwt = FirebaseAuth
                .getInstance()
                .getAccessToken(false)
                .getResult()
                .getToken();
Run Code Online (Sandbox Code Playgroud)

FirebaseAuth
    .getInstance()
    .getAccessToken(true)
    .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
        @Override
        public void onComplete(@NonNull Task<GetTokenResult> task) {
            String jwt = task.getResult().getToken();
        }
    });
Run Code Online (Sandbox Code Playgroud)

似乎让我获得了这样的 JWT。

我一直在寻找有关的信息,getAccessToken(boolean)但找不到任何相关信息。我特别想知道布尔值代表什么;我猜是“异步”,但这感觉有点奇怪,因为“阻塞”会是更好的选择。

我担心由于没有关于此方法的文档,因此它可能已被弃用或什么的。

在进一步检查其他项目/谷歌搜索后,我注意到FirebaseUser通过

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Run Code Online (Sandbox Code Playgroud)

还包含一个getIdToken(boolean)方法,它被指定为

public Task<GetTokenResult> getIdToken (boolean forceRefresh)

这是同一个吗?那个FirebaseAuth.getInstance()只是为了方便吗?应该避免吗?

更新:他们有相同的行为。如果我用 调用它们forceRefresh=false,它们会产生相同的 JWT。