Supprimer tous les utilisateurs de firebase auth console

Existe-t-il un moyen simple de supprimer tous les utilisateurs enregistrés de la console firebase? Par exemple, j'ai créé une centaine d'utilisateurs de mon environnement de développement, et maintenant je veux supprimer tous les.

25
demandé sur Frank van Puffelen 2016-08-07 00:06:37

8 réponses

firebaser ici

Mise à jour 2016-11-08 réponse originale ci-dessous

Nous venons de publier le SDK Firebase Admin , qui prend en charge les cas d'utilisation administratifs, tels que la suppression d'un compte utilisateur sans exiger que cet utilisateur se connecte en premier.

Réponse Originale à cette question

Il n'y a actuellement aucune API dans L'authentification Firebase pour supprimer un utilisateur sans exiger que cet utilisateur se connecte. Nous savons que cela limite la facilité d'utilisation de notre API et travaillent à ajouter de telles fonctionnalités dans une future version. Mais comme d'habitude, nous ne fournissons PAS de délais précis pour le moment où la fonctionnalité sera disponible.

, Pour le moment, vos seules solutions sont:

  • connectez-vous comme chaque test utilisateur dans l'application et supprimez l'utilisateur à partir de là
  • supprimer chaque utilisateur à son tour de la Console Firebase
12
répondu Frank van Puffelen 2016-11-08 11:47:22

Comme dans la réponse mise à jour, vous pouvez probablement utiliser les outils d'administration firebase maintenant, mais si vous ne voulez pas-voici un javascript un peu plus solide pour supprimer les utilisateurs sur le 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)

Exécutez-le simplement dans les outils de développement

50
répondu AAverin 2017-02-28 07:22:38

Parce que je suis assez paresseux pour cliquer sur les boutons et les éléments de l'interface utilisateur, j'ai mis en place un petit script client:

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

Vous devrez peut-être l'exécuter plusieurs fois, mais c'est beaucoup mieux que de perdre du temps à cliquer manuellement sur l'écran.

28
répondu Ionică Bizău 2016-10-19 10:22:50

Légèrement augmenté votre script d'aide.

Version allemande du site 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);
}

Pour la version anglaise, il suffit de remplacer le texte. De cette façon, vous pouvez supprimer 20 utilisateurs ou plus une fois exécutés.

6
répondu Alexander Braunreuther 2016-12-14 23:28:13

Voici mon vélo:

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

Conçu pour éviter d'appeler delete endpoint très souvent, puisque google échoue avec l'erreur 404.

3
répondu www.eugenehp.tk 2018-06-11 18:52:28

Eh bien, j'ai utilisé ce script pour supprimer tous les utilisateurs à la fois dans la console Firebase:

$('[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
répondu Rafael Garcia 2017-01-18 12:36:13

Cela pourrait être utile à certains. Si vous avez accès à la console utilisateur firebase, enregistrez simplement la page en html et utilisez ce qui suit pour supprimer les utilisateurs avec node. besoin de configurer 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);
});

Je recommanderais de faire une course sèche de la logique d'analyse html une fois sur la page en utilisant le navigateur en exécutant simplement ceci et en confirmant que seuls les identifiants d'utilisateur sont affichés dans le résultat. Dans mon cas, cela a renvoyé tous les uid

$('.a12n-user-uid .fb-table-cell-wrapper').each(function() {
  console.log($(this).text());
});
0
répondu Vivek Chowdhary 2017-01-19 06:21:36

Version russe

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
répondu Vadim Strutovskyu 2018-03-31 03:46:48