web-dev-qa-db-fra.com

Supprimer tous les utilisateurs de la console d'authentification firebase

Existe-t-il un moyen simple de supprimer tous les utilisateurs enregistrés de la console Firebase?.

27
Maximus S

firebaser ici

Update 2016-11-08 réponse originale ci-dessous

Nous venons de publier le Firebase Admin SDK , qui prend en charge les cas d'utilisation administratifs, tels que supprimer un compte d'utilisateur sans obliger cet utilisateur à se connecter au préalable .

réponse originale

L’authentification Firebase ne contient actuellement aucune API permettant de supprimer un utilisateur sans que celui-ci soit obligé de se connecter. Nous savons que cela limite la convivialité de notre API et nous travaillons à l’ajout de cette fonctionnalité dans une version ultérieure. Mais comme d’habitude, nous ne fournissons pas d’échéancier spécifique pour le moment où la fonctionnalité sera disponible.

Pour le moment, vos seules solutions sont:

  • connectez-vous en tant qu'utilisateur test dans l'application et supprimez l'utilisateur à partir de là
  • supprimer chaque utilisateur tour à tour depuis la console Firebase
12
Frank van Puffelen

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

Il suffit de l'exécuter dans les outils de développement

60
AAverin

Parce que je suis assez paresseux pour cliquer sur les boutons et les éléments de l'interface utilisateur, j'ai créé 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 votre temps à cliquer manuellement sur des éléments à l'écran. 

29
Ionică Bizău

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 le point de terminaison delete très souvent, car Google échoue avec l'erreur 404.

6
www.eugenehp.tk

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, remplacez simplement le texte ..____. Ainsi, vous pourrez supprimer 20 utilisateurs ou plus une fois exécuté.

6

Eh bien, j'ai utilisé ce script pour supprimer tous les utilisateurs simultanément 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
Rafael Garcia

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
Vadim Strutovskyu

Cela pourrait être utile à certaines personnes . Si vous avez accès à la console utilisateur de Firebase - enregistrez simplement la page au format HTML et utilisez la procédure suivante pour supprimer les utilisateurs avec le nœud. nécessité 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 un essai à blanc de la logique d'analyse HTML une fois sur la page à l'aide du navigateur, en l'exécutant simplement et en confirmant que seuls les identifiants d'utilisateurs sont affichés dans le résultat. Dans mon cas, cela a retourné tous les UID 

$('.a12n-user-uid .fb-table-cell-wrapper').each(function() {
  console.log($(this).text());
});
0
Vivek Chowdhary