Я пытаюсь закодировать метод Delete User в своем приложении для Android, но у меня возникают проблемы при каждом его выполнении. Этот метод будет выполняться, когда пользователь нажимает кнопку "Удалить учетную запись" в разделе "Деятельность". Мои приложения работают с FirebaseUI Auth.
Вот метод:
private void deleteAccount() {
Log.d(TAG, "ingreso a deleteAccount");
FirebaseAuth firebaseAuth = FirebaseAuth.getInstance();
final FirebaseUser currentUser = firebaseAuth.getCurrentUser();
currentUser.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Log.d(TAG,"OK! Works fine!");
startActivity(new Intent(Main3WelcomeActivity.this, Main3Activity.class));
finish();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e(TAG,"Ocurrio un error durante la eliminación del usuario", e);
}
});
}
1) Когда я выполняю эту функцию, на экране появляется сообщение Smart Lock, и пользователь снова входит в систему. Вот скриншот этого сообщения.
2) В других случаях, когда пользователь вошел в систему в течение длительного времени, функция генерирует исключение, подобное следующему:
06-30 00:01:26.672 11152-11152/com.devpicon.android.firebasesamples E/Main3WelcomeActivity: Ocurrio un error durante la eliminación del usuario
com.google.firebase.FirebaseException: An internal error has occured. [ CREDENTIAL_TOO_OLD_LOGIN_AGAIN ]
at com.google.android.gms.internal.zzacq.zzbN(Unknown Source)
at com.google.android.gms.internal.zzacn$zzg.zza(Unknown Source)
at com.google.android.gms.internal.zzacy.zzbO(Unknown Source)
at com.google.android.gms.internal.zzacy$zza.onFailure(Unknown Source)
at com.google.android.gms.internal.zzact$zza.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:453)
Я читал, что должен пройти повторную аутентификацию пользователя, но я не уверен, как это сделать, когда я работаю с Google Sign In.