Short answer
Deleting an account, setting a primary email address and changing a password need a recent sign-in. If the user signed in too long ago, Firebase fails the action with auth/requires-recent-login. Ask the user to sign in again, pass the new credential to reauthenticateWithCredential, then retry the action. Account deletion can also run on your server with the Admin SDK, which deletes users by uid.
Why it fails, and the fix
01
The user signed in too long ago
“If you perform one of these actions, and the user signed in too long ago, the action fails with an error.” Firebase, Manage users: Re-authenticate a user
Catch auth/requires-recent-login when you call deleteUser() or change a password or email, and treat it as a step in the flow, not a dead end.
02
Re-authenticate, then retry
“re-authenticate the user by getting new sign-in credentials from the user and passing the credentials to reauthenticateWithCredential.” Firebase, Manage users: Re-authenticate a user
Show a screen asking the user to sign in again, call reauthenticateWithCredential with the new credential, and retry the action. For Google or Apple sign-in, we run the provider sign-in again to get that credential. Firebase’s example:
import { getAuth, reauthenticateWithCredential } from "firebase/auth"; const auth = getAuth(); const user = auth.currentUser; // TODO(you): prompt the user to re-provide their sign-in credentials const credential = promptForCredentials(); reauthenticateWithCredential(user, credential).then(() => { // User re-authenticated. }).catch((error) => { // An error ocurred // ... });03
Delete the account from your server
“The Firebase Admin SDK allows deleting existing users by their uid:” Firebase, Manage users (Admin SDK)
Firebase’s Admin SDK can also delete a user by uid from your backend, for example in a Cloud Function the app calls. That is a separate route from the client call, and we verify the caller is that signed-in user, then delete their app data along with the account.
04
It blocks App Store account deletion
“If your app supports account creation, you must also offer account deletion within the app.” Apple, Guideline 5.1.1(v)
Apple requires apps with account creation to offer account deletion inside the app, so a Delete account button that fails can turn into a 5.1.1(v) rejection. Test deletion with an account that signed in a while ago, not only a fresh one.
Checked against the vendor’s docs on : Firebase docs: Manage users, Re-authenticate a user; Firebase docs: Manage users with the Admin SDK; Apple: App Review Guidelines, 5.1.1 (last updated October 16, 2026).
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.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.See scope and start
Related: App Store Guideline 5.1.1 · Firebase auth/invalid-credential · Google Play Data safety form rejected · Firestore query requires an index