¿Cómo eliminar un usuario de Firebase de la aplicación de Android?

Hemos visto en muchas de las aplicaciones que si tienen la opción de eliminar al usuario o pueden decir su cuenta de forma permanente. Aquí vamos a ver cómo podemos implementar eso en nuestra aplicación y podemos eliminar nuestra cuenta de forma permanente de la autenticación de Firebase. Aquí, mientras escribimos nuestro código, eliminaremos al usuario, pero antes de eso, volveremos a autenticar al usuario.

Implementación paso a paso

Paso 1: si es nuevo en Firebase , puede consultar la autenticación de usuario mediante Firebase en Android .

Paso 2: siga todos los pasos e «Inicie sesión» en su aplicación de Android. Luego cree un archivo mainmenu.xml de la siguiente manera

XML

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
  
    <item
        android:id="@+id/menulogout"
        android:title="Logout" />
    
    <item
        android:id="@+id/delete"
        android:title="Delete User" />
      
</menu>

Paso 3: Cree una nueva actividad vacía y nombre la actividad como DeleteUser

Paso 4: luego vaya al archivo MainActivity.java MainActivity.java

Java

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.viewpager.widget.ViewPager;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.android.material.tabs.TabLayout;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.EmailAuthProvider;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
  
public class MainActivity extends AppCompatActivity {
    
    private FirebaseAuth mAuth;
  
    private ViewPager mviewPager;
    private FirebaseAuth firebaseAuth;
    private Toolbar mtoolbar;
    private SectionsPagerAdapter mSectionsPagerAdapter;
    private TabLayout mTabLayout;
  
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAuth = FirebaseAuth.getInstance();
        mtoolbar = (Toolbar)findViewById(R.id.main_page_toolbar);
    }
  
    @Override public boolean onCreateOptionsMenu(Menu menu)
    {
        super.onCreateOptionsMenu(menu);
        getMenuInflater().inflate(R.menu.mainmenu, menu);
        return true;
    }
  
    @Override
    public boolean
    onOptionsItemSelected(@NonNull MenuItem item)
    {
        super.onOptionsItemSelected(item);
        if (item.getItemId() == R.id.menulogout) {
            FirebaseAuth.getInstance().signOut();
            senttostart();
        }
        if (item.getItemId() == R.id.delete) {
            startActivity(new Intent(MainActivity.this, DeleteUser.class));
        }
        return true;
    }
}

Paso 5: trabajar con el archivo activity_deleteuser.xml

app > res > layout > activity_deleteuser.xml activity_deleteuser.xml Crearemos dos EditText simples y un Button .

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".DeleteUser">
  
    <EditText
        android:id="@+id/email"
        android:layout_width="267dp"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="36dp"
        android:layout_marginTop="120dp"
        android:ems="10"
        android:hint="Email"
        android:inputType="textEmailAddress" />
  
    <EditText
        android:id="@+id/logpass"
        android:layout_width="259dp"
        android:layout_height="58dp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="32dp"
        android:layout_marginTop="161dp"
        android:ems="10"
        android:hint="Password"
        android:inputType="textPassword" />
  
    <Button
        android:id="@+id/submit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="192dp"
        android:layout_marginTop="227dp"
        android:background="@color/colorPrimary"
        android:text="Submit Here"
        android:textSize="15dp" />
      
</RelativeLayout>

Paso 4: trabajar con el archivo DeleteUser.java

Vaya al archivo DeleteUser.java y consulte el siguiente código. A continuación se muestra el código para el archivo DeleteUser.java . Se agregan comentarios dentro del código para comprender el código con más detalle.

Java

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
  
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
  
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.EmailAuthProvider;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
  
public class DeleteUser extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_delete_user);
        final EditText email = findViewById(R.id.email);
        final EditText password = findViewById(R.id.logpass);
        Button submit = findViewById(R.id.submit);
        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                deleteuser(email.getText().toString(), password.getText().toString());
            }
        });
    }
  
    private void deleteuser(String email, String password) {
          
        final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
  
        // Get auth credentials from the user for re-authentication. The example below shows
        // email and password credentials but there are multiple possible providers,
        // such as GoogleAuthProvider or FacebookAuthProvider.
        AuthCredential credential = EmailAuthProvider.getCredential(email, password);
  
        // Prompt the user to re-provide their sign-in credentials
        if (user != 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) {
                                            if (task.isSuccessful()) {
                                                Log.d("TAG", "User account deleted.");
                                                startActivity(new Intent(DeleteUser.this, StartActivity.class));
                                                Toast.makeText(DeleteUser.this, "Deleted User Successfully,", Toast.LENGTH_LONG).show();
                                            }
                                        }
                                    });
                        }
                    });
        }
    }
}

Producción: 

Publicación traducida automáticamente

Artículo escrito por annianni y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *