You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
delete-user-data kit/extension parity. Priority: medium. The README says the wrong region for manual setups, so functions handle user data in an unexpected region.
Difference
Extension: functions deploy to the location chosen at install, us-central1 by default. I tested europe-west1 and that worked too.
Kit: the README says the functions deploy to "your codebase's default (us-central1 unless you have changed it)". In practice, firebase-tools 15.31 puts all three functions in us-east1. Pub/Sub and Auth triggers with no region resolve to DEFAULT_GLOBAL_TRIGGER_REGION = "us-east1" (firebase-tools services/index.ts).
Not pinning a region is already an accepted kit difference. What's wrong is the documentation. The CLI install paths avoid this: firebase functions:kits:install and ext:migrate generate an entry file that sets setGlobalOptions({ region }) from FUNCTION_DEFAULT_REGION, and a migrated instance landed in its extension's region. Only the README's manual setup hits us-east1.
Reproduced
A deploy with no region set created kit-<id>-clearData, -handleSearch and -handleDeletion in us-east1. The extension instances deployed to us-central1 and europe-west1, as configured.
An earlier test suggested that from us-east1, a large recursive delete in a nam5 database timed out and left data behind. A retest didn't reproduce this. With FIRESTORE_PATHS=rec/{UID}, recursive mode and 20,000 docs under rec/<uid>/items, 4 runs each:
Extension (us-central1)
Kit (us-east1)
Kit (us-central1)
Items left
0
0
0
Recursive delete time
49–56s
40–41s
40s
So the problem here is the documentation, not a measured failure. Data is still processed outside the region a reader would expect.
Code
Extension: no location in resources; the platform applies the install-time location (extension.yaml#L59-L86).
Correct the README: say functions land in us-east1 unless a region is set, and point readers to firebase functions:kits:install, which prompts for FUNCTION_DEFAULT_REGION. Document calling setGlobalOptions({ region }) before the kit loads, the same way the CLI's kit init template uses FUNCTION_DEFAULT_REGION. In an ES module, import / export … from load the kit before the rest of the entry file runs, so the call belongs in a separate module imported first.
changed the title [-]docs(delete-user-data): kit/extension parity – README says us-central1, kit functions deploy to us-east1[/-][+]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1, large deletes time out[/+]on Oct 20, 2026
changed the title [-]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1, large deletes time out[/-][+]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1[/+]on Oct 20, 2026
Activity
delete-user-datakit tracking issue #3249[-]docs(delete-user-data): kit/extension parity – README says us-central1, kit functions deploy to us-east1[/-][+]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1, large deletes time out[/+][-]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1, large deletes time out[/-][+]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1[/+][-]fix(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1[/-][+]docs(delete-user-data): kit/extension parity – manual setup deploys to us-east1, README says us-central1[/+]