同时删除Firebase数据库和身份验证

时间:2019-02-27 13:20:09

标签: java firebase-realtime-database firebase-authentication

首先,我有一个页面供用户将其帐户注册到firebase。他们必须输入自己的姓名,ID,电子邮件和密码。然后,电子邮件将在Firebase身份验证中注册,名称,ID和电子邮件将保存在Firebase数据库中。现在,我尝试删除用户数据并同时删除身份验证。假设我以管理员身份登录,并且想删除图像中作为附件的数据,我该如何同时删除所选用户的数据库和身份验证?

** PS:数据显示在列表视图中,并长按以选择要删除的用户。

enter image description here

这是我的代码。

listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(ActivityAdminPage.this);
            alertDialog.setTitle("Are You Sure?");
            alertDialog.setMessage("Delete the User and the User will not longer able to Login to the " +
                    "System anymore.");
            alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    DatabaseReference databaseR = FirebaseDatabase.getInstance().getReference("User");
                    databaseR.removeValue();
                }//end of YES Button Click
            });

            alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    //do ntg
                }
            });

            alertDialog.create();
            alertDialog.show();
            return true;
        }//End of Long Click

1 个答案:

答案 0 :(得分:0)

您需要分别调用Firebase Realtime Database API和Firebase Authentication API才能删除各个部分。没有API调用可一次删除两者。

最接近您的是从应用程序代码中删除用户帐户,然后让Cloud Function删除相应的数据库节点。

之前我们对此有疑问: