我需要重新验证用户身份才能删除其个人资料。我已经看到了这个答案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();
}