How to bulk delete Firebase anonymous users

This code sample uses the Firebase Admin SDK for Node.js, and will delete any user that has no providerData, which means the user is anonymous:

function deleteAnonymousUsers(nextPageToken) {
 adminApp
    .auth()
    .listUsers(20, nextPageToken)
    .then(function(listUsersResult) {
      listUsersResult.users.forEach(function(userRecord) {
        if (userRecord.providerData.length === 0) { //this user is anonymous
         console.log(userRecord); // do your delete here
         adminApp.auth().deleteUser(userRecord.uid)
            .then(function() {
                console.log("Successfully deleted user");
            })
            .catch(function(error) {
                console.log("Error deleting user:", error);
            });
        }
      });
      if (listUsersResult.pageToken) {
        // List next batch of users.
        deleteAnonymousUsers(listUsersResult.pageToken);
      }
    })
    .catch(function(error) {
      console.log('Error listing users:', error);
    });
}

Update 2021:

I had around 10,000 anonymous users, and @regretoverflow's solution lead to exceeding the delete user quota. However, slightly tweaking the code to utilize the admin's deleteUsers([userId1, userId2, ...]) API works like a charm.

function deleteAnonymousUsers(nextPageToken: string | undefined) {
  firebaseAdmin
    .auth()
    .listUsers(1000, nextPageToken)
    .then(function (listUsersResult) {
      const anonymousUsers: string[] = [];
      listUsersResult.users.forEach(function (userRecord) {
        if (userRecord.providerData.length === 0) {
          anonymousUsers.push(userRecord.uid);
        }
      });

      firebaseAdmin
        .auth()
        .deleteUsers(anonymousUsers)
        .then(function () {
          if (listUsersResult.pageToken) {
            // List next batch of users.
            deleteAnonymousUsers(listUsersResult.pageToken);
          }
        })
    })
}
deleteAnonymousUsers(undefined);

I just wanted to add a method I just used to (sort-of) bulk-delete. Mostly because I felt clever after doing it and I am not that clever.

I downloaded a mouse-automation application that lets you record your mouse clicks then replay it automatically. I just deleted almost 1000 users while playing the piano lol.

I used Macro Recorder and it worked like a charm. Just recorded a few iterations in the console of me deleting users, set it to repeat 500 times and walked away.

I know this isn't a very technical answer, but it saved me hours of monotonous mouse clicking so hopefully someone else looking for a way to bulk-delete will benefit from it as well. I hated the fact that there was no bulk-delete and really needed a way out of it. It only took about 20 manual deletes to realize there were apps that could do what I was doing.


There is no way in the Firebase Console to bulk-delete users.

There is no API to bulk-delete users.

But there is administrative API that allows you to delete user accounts. See https://firebase.google.com/docs/auth/admin/manage-users#delete_a_user