Skip to content
WebViewGold Vibe Coding to App Store Get WebViewGold

Store compliance

The account deletion requirement, and how to implement it in 20 minutes

If users can create an account, both stores require a way to delete it: Apple inside the app since 2022, Google inside the app and through a web link since 2024. Most vibe-coded apps miss this on the first submission. Here is the implementation for the common backends.

What exactly is required

Apple (Guideline 5.1.1 v): the account deletion option must be easy to find in the app (settings or profile), it must delete the account and associated data (not just deactivate), and it may include a confirmation step or a short grace period. Redirecting to a website is only acceptable for highly regulated apps.

Google Play (User Data policy): apps that offer account creation must offer in-app deletion and a web resource for deletion requests, whose URL you enter in the Play Console Data safety section. The data deletion must also be mentioned in the Data safety form.

Implementation pattern

Backend function with admin rights, called from a confirmed button in settings.

  1. Add a "Delete account" button

    In the settings/profile screen, visible without scrolling through menus. Confirmation dialog: "This deletes your account and all data. This cannot be undone."

  2. Create a server-side delete function

    Supabase: an edge function using the service role key that deletes the user's rows (or relies on ON DELETE CASCADE) and calls auth.admin.deleteUser(userId). Firebase: a callable Cloud Function that deletes Firestore documents and the auth user (or the "Delete User Data" extension). Base44: use the built-in user management action or a backend function that removes the user and their entities.

  3. Call it with the current session

    The button calls the function with the user's token so only the owner can delete the account. After success, sign out and show a confirmation screen.

  4. Add a web deletion page

    A simple /delete-account page that explains the in-app path and offers an email form for users who uninstalled the app. Enter this URL in the Play Console.

  5. Mention it in the privacy policy

    One sentence: how to delete the account and how long backups are retained.

Prompt for your builder

Adapt the backend name if needed.

Paste into Lovable, Bolt, v0, Replit or Cursor
Add a "Delete my account" feature required by the Apple App Store and Google Play:
1. In the account settings screen, add a "Delete account" button with a confirmation dialog explaining that the account and all data will be permanently deleted.
2. Create a secure server-side function (edge function / cloud function) that, given the authenticated user's token, deletes all rows belonging to the user and then deletes the auth user. Use the service role / admin SDK on the server only.
3. After successful deletion, sign the user out and show a confirmation page.
4. Add a public /delete-account page that explains how to delete the account in the app and offers a contact form for users who no longer have the app installed.
5. Add a sentence about account deletion to the /privacy page.

Frequently asked questions

Can I just deactivate the account?

No. Apple explicitly requires deletion of the account and the associated data, not deactivation. A short grace period (for example 14 days before permanent deletion) is allowed if you explain it.

Does Sign in with Apple need extra handling?

Yes. When a user who signed in with Apple deletes the account, Apple asks you to revoke the Sign in with Apple token via its REST API so the relationship disappears from the user's Apple ID settings. Supabase and Firebase document the call.

What about apps without sign-up?

If users never create an account (no login at all), the requirement does not apply. Guest usage plus optional accounts still requires deletion for the accounts.

Ready to ship your app?

App Store & Google Play approval guarantee – or your money back within 14 days

Prefer to hand it over? Full Service: we configure, build and submit for $349. Questions? Chat with us 24/7.

Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.