Saltar al contenido

Eliminar un usuario específico de Firebase

Haz todo lo posible por interpretar el código bien antes de aplicarlo a tu proyecto y si ttienes algo que aportar puedes dejarlo en la sección de comentarios.

Solución:

Al usar los SDK del lado del cliente para la autenticación de Firebase, solo puede eliminar la cuenta de usuario que está actualmente iniciada. Cualquier otra cosa sería un gran riesgo de seguridad, ya que permitiría a los usuarios de su aplicación eliminar la cuenta de los demás.

Los SDK de administrador para Firebase Authentication están diseñados para usarse en un entorno confiable, como su máquina de desarrollo, un servidor que usted controla o Cloud Functions. Debido a que se ejecutan en un entorno confiable, pueden realizar ciertas operaciones que los SDK del lado del cliente no pueden realizar, como eliminar cuentas de usuario simplemente conociendo su UID.

Ver también:

  • eliminar el usuario autenticado de firebase de la aplicación web

Otro enfoque común es mantener una lista blanca/lista negra, por ejemplo, en la base de datos de Firebase y autorizar al usuario en función de eso. Consulte Cómo deshabilitar el registro en Firebase 3.x

Sé que esta es una vieja pregunta, pero encontré otra solución para esto. Definitivamente no desea usar firebase-admin en su aplicación en sí, como creo que sugirió Ali Haider, ya que necesita un privado key que no desea implementar con su código.

Sin embargo, puede crear una función en la nube en Firebase que se active con la eliminación de un usuario en su base de datos Firestore o Realtime y permitir que esa función en la nube use firebase-admin para eliminar al usuario. En mi caso, tengo una colección de usuarios en mi Firestore con el mismo ID de usuario creado por Firebase Auth, en el que guardo datos de usuario adicionales como el nombre y el rol, etc.

Si está utilizando Firestore como yo, puede hacer lo siguiente. Si está utilizando la base de datos en tiempo real, simplemente busque en la documentación cómo usar un disparador para eso.

  1. Asegúrese de que su proyecto de Firebase tenga funciones en la nube inicializadas. Debe haber una carpeta llamada ‘funciones’ en el directorio de su proyecto. Si no, inicialice Cloud Functions para su proyecto con el siguiente comando: firebase init functions.

  2. Obtener un privado key para su cuenta de servicio en Firebase Console en la siguiente página: Configuración > Cuentas de servicio.

  3. Coloque el archivo json que contiene el privado key en el functionssrc carpeta junto al archivo index.ts.

  4. Exporte la siguiente función en index.ts:

export const removeUser = functions.firestore.document("/users/uid")
    .onDelete((snapshot, context) =>         
        const serviceAccount = require('path/to/serviceAccountKey.json');
        admin.initializeApp(
            credential: admin.credential.cert(serviceAccount),
            databaseURL: "https://>.firebaseio.com"
        );
        return admin.auth().deleteUser(context.params.uid);
    );
  1. Ahora implemente su Cloud Function con el comando firebase deploy --only functions

Cuando se elimina un usuario en su Firebase Firestore, este código se ejecutará y también eliminará al usuario de Firebase Auth.

Para obtener más información sobre Firebase Cloud Functions, consulte https://firebase.google.com/docs/functions/get-started

Simplemente aplique este código de la misma manera que hizo la autenticación.

var user = firebase.auth().currentUser;

user.delete().then(function() 
  // User deleted.
).catch(function(error) 
  // An error happened.
);

Finalizando este artículo puedes encontrar las notas de otros desarrolladores, tú igualmente puedes dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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