Java 如何同时删除实时数据库中的用户身份验证和用户帐户?
我想创建一个功能,用户可以删除自己的帐户。如果用户删除了他们的帐户。他们的所有信息都将被删除,用户身份验证也将被删除。我已经创建了该功能,但不知何故,在Firebase身份验证中,用户电子邮件没有被删除 上图显示该帐户已被删除,但在身份验证中,该帐户仍未被删除Java 如何同时删除实时数据库中的用户身份验证和用户帐户?,java,android,firebase,firebase-realtime-database,firebase-authentication,Java,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我想创建一个功能,用户可以删除自己的帐户。如果用户删除了他们的帐户。他们的所有信息都将被删除,用户身份验证也将被删除。我已经创建了该功能,但不知何故,在Firebase身份验证中,用户电子邮件没有被删除 上图显示该帐户已被删除,但在身份验证中,该帐户仍未被删除 delete.setOnClickListener(新视图.OnClickListener(){ @凌驾 公共void onClick(视图){ AlertDialog.Builder dialog=新建AlertDialog.Bui
delete.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
AlertDialog.Builder dialog=新建AlertDialog.Builder(CustProfileActivity.this);
setTitle(“你确定吗?”);
setMessage(“删除此帐户将导致完全删除您的帐户”+
“从系统中删除帐户,您将无法访问该应用程序。”);
setPositiveButton(“删除”,新建DialogInterface.OnClickListener()){
@凌驾
公共void onClick(DialogInterface,inti){
progBar.setVisibility(View.VISIBLE);
FirebaseDatabase.getInstance().getReference().child(“客户”).child(firebaseAuth.getCurrentUser().getUid()).removeValue();
currentUser.delete().addOnCompleteListener(新的OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
progBar.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(),“帐户已删除”,Toast.LENGTH\u SHORT.show();
Intent Intent=新的Intent(getApplicationContext(),LoginActivity.class);
intent.addFlags(intent.FLAG\u ACTIVITY\u CLEAR\u TOP);
intent.addFlags(intent.FLAG\u活动\u清除\u任务);
星触觉(意向);
}否则{
Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_SHORT).show();
}
}
});
}
});
setNegativeButton(“disease”,新的DialogInterface.OnClickListener(){
@凌驾
公共void onClick(DialogInterface,inti){
dialogInterface.dismise();
}
});
AlertDialog AlertDialog=dialog.create();
alertDialog.show();
}
});
我想实现一个结果,用户帐户将被删除,包括firebase身份验证中的数据。事实上,我不知道deep dive firebase。但我认为,你可以使用这种方法: 创建一个云函数。这个功能就可以了, 当您在实时数据库上删除用户时,该函数将触发身份验证时删除用户
您可以使用文档来执行您想要的操作 从实时数据库中删除数据不会同时删除通过Firebase身份验证注册的帐户。如果希望用户能够访问,则必须按中所示进行调用
另请参见:您有任何错误吗?如果任务未成功,请登录控制台
task.getException().getMessage()
。你的安全规则是什么?请将其添加到您的问题中。该帐户已从firebase实时数据库中删除,但未从身份验证中删除。请回答第一条评论中的问题。
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder dialog = new AlertDialog.Builder(CustProfileActivity.this);
dialog.setTitle("Are you sure?");
dialog.setMessage("Deleting this account will result in completely removing your " +
" account from the system and you won't be able to access the app.");
dialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
progBar.setVisibility(View.VISIBLE);
FirebaseDatabase.getInstance().getReference().child("Customer").child(firebaseAuth.getCurrentUser().getUid()).removeValue();
currentUser.delete().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
progBar.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "Account Deleted", Toast.LENGTH_SHORT).show();
Intent intent= new Intent(getApplicationContext(),LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
} else {
Toast.makeText(getApplicationContext(), task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
});
dialog.setNegativeButton("Dismiss", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
AlertDialog alertDialog = dialog.create();
alertDialog.show();
}
});