如何在Android登录中获取Firebase身份验证令牌

时间:2020-06-07 03:39:04

标签: android firebase firebase-authentication

我正在使用Firebase身份验证将用户登录到我的Web应用程序和Android应用程序。

通过Webapp的流程,我可以从客户端登录用户,然后将Firebase令牌传递到我的服务器,并在向数据库中添加各种用户信息之前,先通过Firebase进行验证。

我现在正在为Android尝试相同的操作,但是在获取令牌时遇到了一些问题。 这是登录代码:

    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();
    // ...
    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener((MainActivity) context, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // ***I want to get the token here***
                        FirebaseUser fbUser = task.getResult().getUser();

                        // send user details and token to server

                    } else {
                        // If sign in fails, display a message to the user.

                        }
                    }
               }
          });

在其他地方,我看到在Firebase文档中,有this snippet得到了Task<GetTokenResult>,这是我想要的,但是我似乎无法在{{1}中得到它}方法。

从Firebase文档

createUserWithEmailAndPassword

如何在FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser(); mUser.getIdToken(true) .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() { public void onComplete(@NonNull Task<GetTokenResult> task) { if (task.isSuccessful()) { String idToken = task.getResult().getToken(); // Send token to your backend via HTTPS // ... } else { // Handle error -> task.getException(); } } }); 中获得令牌?

1 个答案:

答案 0 :(得分:1)

登录完成后,您可以在第一行中使用第二行代码。

// ***I want to get the token here***
FirebaseUser fbUser = task.getResult().getUser();
fbUser.getIdToken(true)
    .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
        // ...
    }