Eliminar todos los usuarios de firebase auth console


¿Hay una manera fácil de eliminar a todos los usuarios registrados de firebase console? Por ejemplo, he creado un centenar de usuarios desde mi entorno de desarrollo, y ahora quiero eliminarlos todos.

Author: Frank van Puffelen, 2016-08-07

8 answers

firebaser here

Actualización 2016-11-08 respuesta original a continuación

Acabamos de lanzar el Firebase Admin SDK, que admite casos de uso administrativos, como eliminar una cuenta de usuario sin requerir que ese usuario inicie sesión primero.

Respuesta original

Actualmente no hay ninguna API en la autenticación Firebase para eliminar un usuario sin requerir que ese usuario inicie sesión. Sabemos que esto limita la usabilidad de nuestra API y están trabajando para agregar dicha funcionalidad en una versión futura. Pero, como de costumbre, no proporcionamos plazos específicos para cuándo estará disponible la función.

Por el momento, sus únicas soluciones son:

  • inicie sesión como cada usuario de prueba en la aplicación y elimine el usuario desde allí
  • eliminar cada usuario a su vez desde la consola de Firebase
 12
Author: Frank van Puffelen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-08 11:47:22

Al igual que en la respuesta actualizada, probablemente puede usar las herramientas de administración de firebase ahora, pero si no lo desea, aquí hay un javascript un poco más sólido para eliminar usuarios en la web:

var intervalId;

var clearFunction = function() {
  if ($('[aria-label="Delete account"]').size() == 0) {
    console.log("interval cleared")
    clearInterval(intervalId)
    return
  }
  $('[aria-label="Delete account"]')[0].click();
  setTimeout(function () {
     $(".md-raised:contains(Delete)").click()
  }, 1000);
};

intervalId = setInterval(clearFunction, 3000)

Simplemente ejecútelo en herramientas para desarrolladores

 50
Author: AAverin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-28 07:22:38

Debido a que soy bastante perezoso al hacer clic en botones y elementos en la interfaz de usuario, configuré un pequeño script de cliente:

$('[aria-label="Delete account"]').click()
setTimeout(function () {
   $(".md-raised:contains(Delete)").click()
}, 1000);

Es posible que necesite ejecutarlo varias veces, pero es mucho mejor que perder el tiempo haciendo clic en las cosas en la pantalla manualmente.

 28
Author: Ionică Bizău,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-19 10:22:50

Se ha aumentado ligeramente el script de ayuda.

Versión alemana del sitio de firebase:

$('[aria-label="Nutzermenü öffnen"]').click();
$('[aria-label="Konto löschen"]').click();
for (i = 0; i < 20; i++) {
  setTimeout(() => {
    $('.md-raised:contains(Löschen)').click();
  }, i * 200);
}

Para la versión en inglés simplemente reemplace el texto. De esta manera puede eliminar 20 o más usuarios una vez ejecutados.

 6
Author: Alexander Braunreuther,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-14 23:28:13

Aquí está mi bicicleta:

setInterval(() => {
  $('[aria-label="Delete account"]').first().click()
  setTimeout(()=>{
    $(".md-raised:contains(Delete)").click()
  }, 100)
}, 2000);

Diseñado para evitar llamar a delete endpoint muy a menudo, ya que Google falla con 404 error.

 3
Author: www.eugenehp.tk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-11 18:52:28

Bueno, usé este script para eliminar todos los usuarios a la vez en Firebase console:

$('[aria-label="Delete account"]').each(function() {
  $(this).click();
  $('[ng-click="controller.submit()"]').click()
})

Https://console.firebase.google.com/project/YOUR_PROJECT_NAME/authentication/users

 2
Author: Rafael Garcia,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-18 12:36:13

Esto podría ser útil para algunos. Si tiene acceso a la consola de usuario de firebase, simplemente guarde la página como html y use lo siguiente para eliminar usuarios con nodo. necesidad de configurar firebase-admin

let fs = require('fs'),
  admin = require('firebase-admin'),
  cheerio = require('cheerio');

// initialize firebase admin here
admin.initializeApp({
credential: admin.credential.cert('path/to/serviceAccountKey.json'),
databaseURL: 'https://<DATABASE_NAME>.firebaseio.com'
});

// use cheerio to load the html file you downloaded
$ = cheerio.load(fs.readFileSync('./yourfirebaseconsole.html'));
$('.a12n-user-uid .fb-table-cell-wrapper').each(function() {
  admin.auth().deleteUser($(this).text());
}).then(() => {
  console.log('successfully delete user');
}).catch((error) => {
  console.log('error occurred ', error);
});

Recomendaría hacer un simulacro de la lógica de análisis html una vez en la página usando el navegador simplemente ejecutando esto y confirmando que solo los ID de usuario se muestran en el resultado. En mi caso esto devolvió todos los UIDs

$('.a12n-user-uid .fb-table-cell-wrapper').each(function() {
  console.log($(this).text());
});
 0
Author: Vivek Chowdhary,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-19 06:21:36

Versión rusa

var intervalId;

var clearFunction = function() {
if ($('[aria-label="Удаление аккаунта"]').size() == 0) {
console.log("interval cleared")
clearInterval(intervalId)
return
}
$('[aria-label="Удаление аккаунта"]')[0].click();
setTimeout(function () {
$('[ng-click="controller.submit()"]').click()
}, 1000);
};

intervalId = setInterval(clearFunction, 3000)
 0
Author: Vadim Strutovskyu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-31 03:46:48