Firebase用户idToken未刷新

时间:2017-06-22 20:46:33

标签: android firebase firebase-authentication

我正在开发应用并使用firebase来管理用户。我成功创建了一个用户,然后成功登录了他。

当我请求idToken时出现问题。 我试过了

FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
mUser.getToken(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();
        }
    }
});

我也试过

final FirebaseAuth.IdTokenListener handle = new FirebaseAuth.IdTokenListener() {
        @Override
        public void onIdTokenChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser mUser = firebaseAuth.getCurrentUser();
            if(mUser!=null){
                Log.w("User getToken: user :", mUser.getDisplayName());
                mUser.getIdToken(true)
                        .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() {
                            public void onComplete(@NonNull Task<GetTokenResult> task) {
                                if (task.isSuccessful()) {
                                    String idToken = task.getResult().getToken();
                                    Log.w("User getToken: ", idToken);

                                } else {

                                }
                            }
                        });
            }
        }
    };

    FirebaseAuth mAuth = FirebaseAuth.getInstance();
    mAuth.addIdTokenListener(handle);

何时

Log.w("User getToken: user :", mUser.getDisplayName());

被称为我获得的信息来自新创建的用户但是

Log.w("User getToken: ", idToken);
调用

,令牌值始终相同。奇怪的是它在今天之前工作。我没有做出任何改变,所以即使当前用户正在改变,我也不知道为什么我收到的令牌总是一样的。

0 个答案:

没有答案