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.
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
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
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.
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.
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
.
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
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());
});
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)