すべての登録ユーザーをfirebaseコンソールから削除する簡単な方法はありますか? たとえば、開発環境から 100 のユーザーを作成しましたが、今はそれらすべてを削除したいと考えています。
28 に答える
UI のボタンや要素をクリックするのがかなり面倒なので、小さなクライアント スクリプトをセットアップします。
$('[aria-label="Delete account"]').click()
setTimeout(function () {
$(".md-raised:contains(Delete)").click()
}, 1000);
複数回実行する必要があるかもしれませんが、画面上のものを手動でクリックして時間を無駄にするよりははるかに優れています。
新しい Firebase の更新について
最新の Firebase アップデートについては、このコードをお試しください。コンソールを開き、このコードを貼り付けて Enter キーを押します!!!
setInterval(() => {
document.getElementsByClassName('edit-account-button mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base')[0].click()
let deleteButtonPosition = document.getElementsByClassName('mat-focus-indicator mat-menu-item ng-star-inserted').length - 1
document.getElementsByClassName('mat-focus-indicator mat-menu-item ng-star-inserted')[deleteButtonPosition].click()
document.getElementsByClassName('confirm-button mat-focus-indicator mat-raised-button mat-button-base mat-warn')[0].click()
}, 1000)
ファイアベースはこちら
以下の2016年11月8日の元の回答を更新
Firebase Admin SDKをリリースしました。この SDK は、ユーザー アカウントの削除などの管理ユースケースをサポートします。ユーザーは最初にサインインする必要はありません。
元の答え
Firebase Authentication には現在、ユーザーをサインインさせずにユーザーを削除するための API はありません。これにより API の使いやすさが制限されることがわかっており、将来のリリースでそのような機能を追加できるよう取り組んでいます。ただし、いつものように、この機能が利用可能になる具体的なタイムラインは提供していません。
今のところ、唯一の回避策は次のとおりです。
- アプリで各テスト ユーザーとしてサインインし、そこからユーザーを削除します
- Firebase コンソールから各ユーザーを順番に削除します
このスクリプトを共有してくれた @abbas-ali に感謝します。最新の firebase リリースで完全に正常に動作します (2021 年 7 月に 600 以上のレコードでテスト済み - 匿名および複数連邦のログイン メール アドレスの両方)。
setInterval(() => {
document.getElementsByClassName('edit-account-button mat-focus-indicator mat-menu-trigger mat-icon-button mat-button-base')[0].click()
if(document.getElementsByClassName('mat-focus-indicator mat-menu-item ng-star-inserted').length===3){
document.getElementsByClassName('mat-focus-indicator mat-menu-item ng-star-inserted')[2].click()
}else{
document.getElementsByClassName('mat-focus-indicator mat-menu-item ng-star-inserted')[1].click()
}
document.getElementsByClassName('confirm-button mat-focus-indicator mat-raised-button mat-button-base mat-warn')[0].click()
}, 1000)
これは一部の人にとっては役立つかもしれません。firebase ユーザー コンソールにアクセスできる場合は、ページを html として保存し、次を使用してノードでユーザーを削除します。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);
});
これを実行し、結果にユーザー ID のみが表示されることを確認するだけで、ブラウザーを使用してページで html 解析ロジックのドライランを 1 回実行することをお勧めします。私の場合、これはすべてのUIDを返しました
$('.a12n-user-uid .fb-table-cell-wrapper').each(function() {
console.log($(this).text());
});
これを試してください、ブラウザコンソールで。firebase で一括削除オプションが見つかりませんでした。だから私はこのjsを書きました。
var elements = [];
$('.a12n-users-table').find('tr').each(function(r){
$(this).find('td.table-row-actions').each(function(tds) {
$(this).find('button').each(function(x){
if($(this).attr('aria-label')=="Delete account"){
elements.push($(this));
}
});
});
});
var index = 0;
function deleteUser(){
index++;
elements[index].click();
$('.fb-dialog-actions').find('.md-warn').click();
setTimeout(deleteUser, 5000);
}
deleteUser();