首页 > 解决方案 > 使用 GoogleAuthProvider 重新对用户进行身份验证不起作用

问题描述

我需要重新验证用户身份才能删除他的个人资料。我已经看过这个答案How to re-authenticate a user on Firebase with Google Provider? 但这对我不起作用。事实上,下面的代码只有在用户最近登录时才能正确消除用户。所以在我的代码中似乎 user.reauthenticate(credential) 不起作用。

public void OnDeleteProfile(View view){
    new AlertDialog.Builder(this)
    .setPositiveButton("Delete", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) {
            final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
            GoogleSignInAccount acct = GoogleSignIn.getLastSignedInAccount(getApplicationContext());
            AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(),null);
            user.reauthenticate(credential)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    user.delete()
                    .addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                        }
                    });

               }
            });

        }
    })
    .setIcon(android.R.drawable.ic_dialog_alert)
    .show();
}

标签: javafirebasegoogle-signin

解决方案


推荐阅读