Skip to content

Firebase Auth errorFirebase: “The user account has been disabled by an administrator” (auth/user-disabled)

Sign-in fails with auth/user-disabled, or ERROR_USER_DISABLED on Android. Someone disabled the account, in the Firebase console or with the Admin SDK. The account and its data still exist; the person just cannot sign in until it is enabled again.

Short answer

If it was a mistake, re-enable the user in the Firebase console under Authentication, Users, or with updateUser(uid, { disabled: false }). If it was on purpose, catch the code and show a message that says how to get help. To push a disabled user out of devices where they are already signed in, check revocation on your server.

Why Firebase blocks the account, and the fix

  1. 01

    The account was disabled

    “Whether or not the user is disabled. true for disabled; false for enabled.” Firebase, Manage users (disabled property)

    An admin disabled the user in the console, or your server set disabled: true. Re-enable it the same way. In Flutter the code is user-disabled, without the auth/ prefix.

    // server, Admin SDK
    await getAuth().updateUser(uid, { disabled: false });
  2. 02

    Show the person what happened

    “The user account has been disabled by an administrator.” GitHub, firebase-js-sdk auth error messages

    The raw error reads like a crash. Catch it on the sign-in screen and say the account is off and who to contact.

    try {
      await signInWithEmailAndPassword(auth, email, password);
    } catch (e) {
      if (e.code === 'auth/user-disabled') {
        showMessage('This account is turned off. Contact support to restore it.');
      }
    }
  3. 03

    The person is still signed in on another device

    “The user is disabled” Firebase, Manage user sessions (when refresh tokens expire)

    Disabling stops the refresh token, so the session ends when the current ID token runs out, within an hour. To block them sooner, verify tokens on your server with checkRevoked set; the Admin SDK then reports a disabled user.

    await getAuth().verifyIdToken(idToken, true); // checkRevoked
  4. 04

    Data access does not check it

    Firestore and Realtime Database rules see the token, not the disabled flag, so a disabled user’s unexpired token still works there for up to an hour. If that matters, also block the user in your own data; Firebase’s session docs show a rules check on a revokeTime value for this.

Checked against the vendor’s docs on : Firebase docs: Manage users (Admin SDK); Firebase docs: Manage user sessions; Firebase docs: Admin Authentication API errors; firebase-js-sdk: auth error messages.

Rather hand it over?

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

Related: Firebase “ID token has expired” · Firebase auth/admin-restricted-operation · Firebase auth/invalid-credential · Firebase “FIS_AUTH_ERROR”

Questions

More on this error

Does disabling a user delete their data?

No. The account and everything stored for it stay in place. Enabling the user again restores sign-in.

How do I log a user out of every device right away?

Disable the user or revoke their refresh tokens with revokeRefreshTokens, and verify ID tokens on your server with checkRevoked so the current token stops working too.

Can you fix it for me?

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

A different error?

Describe it and get a written quote

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.