Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何同时删除实时数据库中的用户身份验证和用户帐户?_Java_Android_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Java 如何同时删除实时数据库中的用户身份验证和用户帐户?

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

我想创建一个功能,用户可以删除自己的帐户。如果用户删除了他们的帐户。他们的所有信息都将被删除,用户身份验证也将被删除。我已经创建了该功能,但不知何故,在Firebase身份验证中,用户电子邮件没有被删除

上图显示该帐户已被删除,但在身份验证中,该帐户仍未被删除

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();
                }
            });