[{"data":1,"prerenderedAt":2465},["ShallowReactive",2],{"\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027\u002F":3,"\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027\u002F-related":706,"\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027\u002F-resources":2446},{"id":4,"title":5,"author":6,"body":10,"category":621,"createdAt":622,"description":623,"disclosure":624,"extension":625,"faq":626,"howTo":624,"lastVerified":624,"location":642,"meta":643,"navigation":649,"ogImage":624,"path":650,"primaryKeyword":651,"readingTime":652,"related":653,"seo":657,"sources":658,"stem":696,"tags":697,"takeaways":698,"updatedAt":622,"url":704,"__hash__":705},"blog\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027.md","Firebase Test Lab Shutting Down: Alternatives for 2027",{"name":7,"social":8},"Simon Dziak",{"twitter":9},"@SzymonDziak",{"type":11,"value":12,"toc":604},"minimark",[13,26,29,35,40,126,129,137,141,144,147,150,153,157,160,176,179,182,192,206,209,215,222,226,229,234,237,263,266,277,281,284,287,291,300,303,350,361,364,426,429,443,446,450,453,456,460,463,469,480,483,533,536,540,581,588,592],[14,15,16,20,21,25],"p",{},[17,18,19],"strong",{},"Firebase Test Lab will be fully shut down on September 30, 2027, and Google's named replacement is the Developer Device Platform on Google Cloud."," The platform's ",[22,23,24],"code",{},"gcloud beta device-run"," command supports Android instrumentation and iOS XCTest in preview, so any release pipeline that runs tests on Test Lab needs a plan before that date.",[14,27,28],{},"The facts below come from Firebase, Google Cloud, Flutter and Android documentation, as shown in the sources. I checked each one on October 18, 2026. Google can change a date, so open the linked page before you plan around it.",[14,30,31,34],{},[17,32,33],{},"Disclosure:"," App369 is my studio. I build and fix Flutter and Firebase apps, and the last section mentions what I sell. Google doesn't pay me for anything on this page.",[36,37,39],"h2",{"id":38},"the-dated-timeline","The dated timeline",[41,42,43,59],"table",{},[44,45,46],"thead",{},[47,48,49,53,56],"tr",{},[50,51,52],"th",{},"Date",[50,54,55],{},"What happens",[50,57,58],{},"Source",[60,61,62,80,98,111],"tbody",{},[47,63,64,68,71],{},[65,66,67],"td",{},"Now to September 30, 2027",[65,69,70],{},"Test Lab keeps running until the shutdown",[65,72,73],{},[74,75,79],"a",{"href":76,"rel":77},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab",[78],"nofollow","Firebase",[47,81,82,88,91],{},[65,83,84,85],{},"Through ",[17,86,87],{},"April 30, 2027",[65,89,90],{},"Developer Device Platform pricing matches Test Lab rates",[65,92,93],{},[74,94,97],{"href":95,"rel":96},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fmigrate-faq",[78],"Firebase FAQ",[47,99,100,103,106],{},[65,101,102],{},"After April 30, 2027",[65,104,105],{},"New pricing takes effect and the promotional pay-per-use matching ends",[65,107,108],{},[74,109,97],{"href":95,"rel":110},[78],[47,112,113,118,121],{},[65,114,115],{},[17,116,117],{},"September 30, 2027",[65,119,120],{},"Test Lab is fully shut down. You can't run any workflows after this date",[65,122,123],{},[74,124,79],{"href":76,"rel":125},[78],[14,127,128],{},"I found no earlier dated change on these pages than the shutdown itself. The one dated change before it is the pricing change after April 30, 2027.",[14,130,131,132,136],{},"For the other Firebase retirements, see my ",[74,133,135],{"href":134},"\u002Fblog\u002Ffirebase-deprecations-shutdown-dates-2026\u002F","Firebase deprecations table",".",[36,138,140],{"id":139},"what-stops-and-what-doesnt","What stops, and what doesn't",[14,142,143],{},"The Test Lab page says: \"Firebase Test Lab is deprecated and will be fully shut down on September 30, 2027.\" It adds that, to maintain your testing workflows, you can migrate to the Developer Device Platform on Google Cloud.",[14,145,146],{},"The migration FAQ is blunter. It says \"Yes, you won't be able to run any workflows after September 30, 2027.\" So the Firebase console and API go with it, and so do any gcloud or CI jobs that call them.",[14,148,149],{},"Firebase's migration page gives the practical reason to move early: \"To prevent CI\u002FCD interruptions, transition to the Developer Device Platform before the shut down date.\"",[14,151,152],{},"Android Device Streaming is a separate case. The migration page says it is not being deprecated and describes it as a core feature of the Developer Device Platform.",[36,154,156],{"id":155},"how-teams-use-test-lab-today","How teams use Test Lab today",[14,158,159],{},"Firebase describes three steps. You prepare a test, define a test matrix of devices, OS versions, locales and orientations, then run it and review results in the Firebase console. The test types on the Test Lab page are:",[161,162,163,167,170,173],"ul",{},[164,165,166],"li",{},"Android instrumentation tests",[164,168,169],{},"Robo tests on Android, which run without a pre-written test",[164,171,172],{},"Game Loop tests on iOS and Android",[164,174,175],{},"XCTest on iOS",[14,177,178],{},"You can start runs from the Firebase console, the gcloud CLI, Android Studio or a CI system. These are the commands Firebase's own pages show.",[14,180,181],{},"Android instrumentation:",[183,184,189],"pre",{"className":185,"code":187,"language":188},[186],"language-text","gcloud firebase test android run \\\n  --type instrumentation \\\n  --app app-debug-unaligned.apk \\\n  --test app-debug-test-unaligned.apk \\\n  --device model=Nexus6,version=21,locale=en,orientation=portrait\n","text",[22,190,187],{"__ignoreMap":191},"",[14,193,194,195,198,199,202,203,136],{},"The Android page says ",[22,196,197],{},"--type robo"," is the default when no type is given, and that ",[22,200,201],{},"--type instrumentation"," is implied when you pass a test APK with ",[22,204,205],{},"--test",[14,207,208],{},"iOS XCTest:",[183,210,213],{"className":211,"code":212,"language":188},[186],"gcloud firebase test ios run --test PATH\u002FTO\u002FMyTests.zip \\\n --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1\n",[22,214,212],{"__ignoreMap":191},[14,216,217,218,221],{},"For CI, Firebase's continuous integration page walks through Jenkins and links to Bitrise and CircleCI docs for other systems. It says to create a service account with an Editor role and activate it, and to enable the Google Cloud Testing API and the Cloud Tool Results API. Every one of those pipelines calls ",[22,219,220],{},"gcloud firebase test",", which is why the shutdown is a pipeline change and not just a console change.",[36,223,225],{"id":224},"what-google-names-as-the-replacement","What Google names as the replacement",[14,227,228],{},"Google names one replacement, and one feature that continues. I am listing only what Firebase's pages name.",[230,231,233],"h3",{"id":232},"the-developer-device-platform","The Developer Device Platform",[14,235,236],{},"Firebase's migration FAQ lists these offerings:",[161,238,239,245,251,257],{},[164,240,241,244],{},[17,242,243],{},"Device Run:"," runs tests on devices in its lab, with results in the Google Cloud console.",[164,246,247,250],{},[17,248,249],{},"Device Streaming API:"," connects to remote physical Android devices.",[164,252,253,256],{},[17,254,255],{},"Agent skills:"," help AI coding agents find, reserve and interact with devices.",[164,258,259,262],{},[17,260,261],{},"Device Catalog:"," lets you find, sort and explore devices.",[14,264,265],{},"Three facts from the pages matter before you commit:",[161,267,268,271,274],{},[164,269,270],{},"The platform is in preview. Firebase says that means Google's Pre-GA Offerings Terms apply and support might be limited.",[164,272,273],{},"It requires billing to be enabled. The FAQ notes that Test Lab \"supported some usage without billing.\"",[164,275,276],{},"After April 30, 2027, the FAQ says pricing combines pay-per-use and per-device slot subscription options. The pricing page describes a pay-per-minute plan and sends you to Google for current rates.",[230,278,280],{"id":279},"android-device-streaming-in-android-studio","Android Device Streaming in Android Studio",[14,282,283],{},"The Android Developers page says it \"lets you securely connect to remote physical Android devices hosted in Google's secure data centers and Android Partner Device Labs.\" The page says it is free to try on the Spark plan, and that usage beyond the monthly no-cost minutes may incur billing. It needs Editor or Owner permission on the Firebase project, or specific IAM roles. This is a way to try an app on a device from Android Studio. It is not a replacement for a CI test run, and Google does not present it as one.",[14,285,286],{},"My advice: treat the Developer Device Platform as the replacement for your pipeline, and Android Device Streaming as something you keep for hands-on device checks.",[36,288,290],{"id":289},"what-the-new-command-supports","What the new command supports",[14,292,293,294,296,297,299],{},"Google's migration guide describes ",[22,295,24],{}," as an enhancement to the ",[22,298,220],{}," CLI. It labels it a preview offering that is available \"as is\" and might have limited support. The supported test types it lists are Android instrumentation and iOS XCTest.",[14,301,302],{},"The command mapping:",[41,304,305,318],{},[44,306,307],{},[47,308,309,312,315],{},[50,310,311],{},"Task",[50,313,314],{},"Developer Device Platform",[50,316,317],{},"Test Lab",[60,319,320,335],{},[47,321,322,325,330],{},[65,323,324],{},"Android instrumentation",[65,326,327],{},[22,328,329],{},"gcloud beta device-run sessions submit instrumentation",[65,331,332],{},[22,333,334],{},"gcloud firebase test android run --type=instrumentation",[47,336,337,340,345],{},[65,338,339],{},"iOS XCTest",[65,341,342],{},[22,343,344],{},"gcloud alpha device-run sessions submit xctest",[65,346,347],{},[22,348,349],{},"gcloud firebase test ios run --type=xctest",[14,351,352,353,356,357,360],{},"The guide writes the iOS command with ",[22,354,355],{},"alpha"," and the Android one with ",[22,358,359],{},"beta",". Confirm which track applies on the day you run it.",[14,362,363],{},"Google's translation page changes flags too. A few examples from its tables:",[161,365,366,380,388,401,409,417],{},[164,367,368,371,372,375,376,379],{},[22,369,370],{},"--app"," becomes ",[22,373,374],{},"--apps",", and ",[22,377,378],{},"--additional-apks"," is merged into it.",[164,381,382,371,385,136],{},[22,383,384],{},"--device model=M,version=V",[22,386,387],{},"--device=M-V",[164,389,390,371,393,396,397,400],{},[22,391,392],{},"--timeout",[22,394,395],{},"--instrumentation-timeout"," on Android and ",[22,398,399],{},"--xctest-timeout"," on iOS.",[164,402,403,371,406,136],{},[22,404,405],{},"--results-bucket",[22,407,408],{},"--bucket-name",[164,410,411,371,414,136],{},[22,412,413],{},"--client-details",[22,415,416],{},"--labels",[164,418,419,371,422,425],{},[22,420,421],{},"--num-flaky-test-attempts R",[22,423,424],{},"--flaky-test-attempts A",", where A is R plus 1 (Android; the iOS flag takes a direct count).",[14,427,428],{},"The guide lists several behavior differences from Test Lab:",[161,430,431,434,437,440],{},[164,432,433],{},"Retries run only the failing test cases, where Test Lab retries the whole shard.",[164,435,436],{},"Android instrumentation runs with only a test APK.",[164,438,439],{},"The per-shard limit is 3 hours, up from Test Lab's 45 minutes.",[164,441,442],{},"The Device Catalog has server-side filtering and real-time availability.",[14,444,445],{},"Google also offers two ways to convert your scripts: a manual route using the translation tables, and an AI-assisted route using a migration skill file with a coding agent. The guide names Antigravity, Claude Code and Codex. If you use an agent, read its output against the translation table before you merge it.",[230,447,449],{"id":448},"what-the-pages-do-not-cover","What the pages do not cover",[14,451,452],{},"The translation page says nothing about Robo tests or Game Loop tests, and the migration guide lists only instrumentation and XCTest as supported types. If you run Robo or Game Loop tests on Test Lab, these pages document no replacement for them. The migration page links a support contact, or you can plan to rebuild those checks as instrumentation tests.",[14,454,455],{},"The FAQ also says the platform does not work with VPC Service Controls, and that Google can't commit to supporting Appium, Flutter\u002FFlutterDriver, React Native\u002FJest or Cucumber, though some are on its roadmap.",[36,457,459],{"id":458},"what-it-means-for-flutter-integration-tests","What it means for Flutter integration tests",[14,461,462],{},"Flutter's integration testing page has dedicated Test Lab sections for Android and iOS. Its Android steps build an APK with Gradle, then use the Instrumentation test type. The integration_test README shows the same flow with these commands:",[183,464,467],{"className":465,"code":466,"language":188},[186],"gcloud firebase test android run --type instrumentation \\\n  --app build\u002Fapp\u002Foutputs\u002Fapk\u002Fdebug\u002Fapp-debug.apk \\\n  --test build\u002Fapp\u002Foutputs\u002Fapk\u002FandroidTest\u002Fdebug\u002Fapp-debug-androidTest.apk \\\n  --timeout 2m \\\n  --results-bucket=\u003CRESULTS_BUCKET> \\\n  --results-dir=\u003CRESULTS_DIRECTORY>\n",[22,468,466],{"__ignoreMap":191},[14,470,471,472,475,476,479],{},"For iOS, it uploads a zip with ",[22,473,474],{},"gcloud firebase test ios run --test \"build\u002Fios_integ\u002FBuild\u002FProducts\u002Fios_tests.zip\""," and a ",[22,477,478],{},"--device"," flag.",[14,481,482],{},"Here is what Google's pages imply for those steps.",[484,485,486,492,505,521,527],"ol",{},[164,487,488,491],{},[17,489,490],{},"The test types overlap."," Flutter's Test Lab flow uses Android instrumentation and an iOS XCTest zip, and those are the two types the platform lists in preview. Google does not say that Flutter integration_test runs on the platform, and I haven't tested it.",[164,493,494,500,501,504],{},[17,495,496,499],{},[22,497,498],{},"--results-dir"," has no equivalent."," Google's translation table marks it unsupported and says sub-paths are organized automatically in Cloud Storage under ",[22,502,503],{},"automation\u002Fsessions\u002F{session_id}\u002F",". If your pipeline reads results from a fixed folder, change that step.",[164,506,507,515,516,511,518,520],{},[17,508,509,511,512,514],{},[22,510,392],{}," and ",[22,513,405],{}," are renamed."," Use ",[22,517,395],{},[22,519,408],{}," on Android.",[164,522,523,526],{},[17,524,525],{},"Flutter's pages still point at Test Lab."," The Flutter page and README have no deprecation note that I saw, so they will tell you to do things Google's own notice says will stop.",[164,528,529,532],{},[17,530,531],{},"Flutter\u002FFlutterDriver support isn't committed."," The platform FAQ says some frameworks are on the roadmap but it can't commit to them. For Android it says apps built with a framework that supports Espresso (for example, Flutter) can run an Espresso instrumentation test.",[14,534,535],{},"My advice: copy your current Test Lab step into a branch, translate it with Google's table, and run it against a small test before you touch your main pipeline.",[36,537,539],{"id":538},"a-short-plan","A short plan",[484,541,542,551,557,563,569,575],{},[164,543,544,547,548,550],{},[17,545,546],{},"Find every use."," Search your repos, CI settings and scripts for ",[22,549,220],{},". Check the Firebase console for Test Lab matrices as well.",[164,552,553,556],{},[17,554,555],{},"Write down the test types."," Instrumentation and XCTest have a documented path. Robo and Game Loop don't.",[164,558,559,562],{},[17,560,561],{},"Enable billing"," on the Google Cloud project you will use. The platform requires it.",[164,564,565,568],{},[17,566,567],{},"Translate one job"," with the flag table and run it in preview, in a branch, while your Test Lab job stays in place.",[164,570,571,574],{},[17,572,573],{},"Compare cost."," Matching pricing ends after April 30, 2027, so check Google's current rates before you decide on volume.",[164,576,577,580],{},[17,578,579],{},"Cut over only after the new job passes in CI."," Keep Test Lab until then. My advice: finish well before September 30, 2027, so a broken flag doesn't stall a release.",[14,582,583,584,136],{},"For every other dated Apple, Google Play and Firebase requirement in 2026 and 2027, see ",[74,585,587],{"href":586},"\u002Fblog\u002Fapp-store-google-play-deadlines-2026-2027\u002F","App Store and Google Play deadlines for 2026 and 2027",[36,589,591],{"id":590},"need-a-hand","Need a hand?",[14,593,594,595,599,600,136],{},"If your release pipeline runs tests on Firebase Test Lab and you want it moved before the shutdown, the ",[74,596,598],{"href":597},"\u002Ffixed-price\u002Fflutter-firebase-bug-fix\u002F","App Fix Ticket"," covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days and comes as a pull request. Or ",[74,601,603],{"href":602},"\u002Fcontact\u002F","send me a short description",{"title":191,"searchDepth":605,"depth":605,"links":606},2,[607,608,609,610,615,618,619,620],{"id":38,"depth":605,"text":39},{"id":139,"depth":605,"text":140},{"id":155,"depth":605,"text":156},{"id":224,"depth":605,"text":225,"children":611},[612,614],{"id":232,"depth":613,"text":233},3,{"id":279,"depth":613,"text":280},{"id":289,"depth":605,"text":290,"children":616},[617],{"id":448,"depth":613,"text":449},{"id":458,"depth":605,"text":459},{"id":538,"depth":605,"text":539},{"id":590,"depth":605,"text":591},"AI & Technology","2026-10-19T01:20:00.000Z","Firebase Test Lab shuts down on September 30, 2027. The dated timeline, what stops, the Developer Device Platform replacement Google names, how the gcloud commands map, and what it means for Flutter integration_test steps, checked October 18, 2026.",null,"md",[627,630,633,636,639],{"question":628,"answer":629},"When does Firebase Test Lab shut down?","On September 30, 2027. The Test Lab page says it is deprecated and will be fully shut down on that date, and the migration FAQ says you won't be able to run any workflows after it. Executions are supported until then.",{"question":631,"answer":632},"What replaces Firebase Test Lab?","The Developer Device Platform on Google Cloud. Firebase's migration FAQ lists Device Run, the Device Streaming API, agent skills and a Device Catalog as its offerings. The platform is in preview, so it falls under Google's Pre-GA Offerings Terms.",{"question":634,"answer":635},"Is Android Device Streaming being shut down too?","No. Firebase's migration page says Android Device Streaming is not being deprecated and describes it as a core feature of the Developer Device Platform. The Android Studio page describes it as a way to connect to remote physical Android devices.",{"question":637,"answer":638},"Will my gcloud firebase test commands keep working?","Only until September 30, 2027. Google's migration guide describes gcloud beta device-run as an enhancement to the gcloud firebase test CLI and gives a command and flag translation table for Android instrumentation and iOS XCTest. Check that table for every flag in your scripts.",{"question":640,"answer":641},"Does the new platform support Flutter integration tests?","The platform FAQ says that while some of Appium, Flutter\u002FFlutterDriver, React Native\u002FJest and Cucumber are on its roadmap, Google can't commit to supporting them. For Android, it says that if your app is built with a framework that supports Espresso (for example, Flutter), you can write an Espresso instrumentation test and run it on the platform. Flutter's integration_test steps for Test Lab build an instrumentation APK on Android and an XCTest zip on iOS, so test your own pipeline before you rely on it.","Boynton Beach, FL",{"readingTimeStats":644},{"text":645,"minutes":646,"time":647,"words":648},"8 min read",7.98,478800,1596,true,"\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027","firebase test lab shutting down","9 min",[654,655,656],"firebase-deprecations-shutdown-dates-2026","firebase-extensions-shutting-down-replace-2027","app-store-google-play-deadlines-2026-2027",{"title":5,"description":623},[659,661,664,666,669,672,675,678,681,684,687,690,693],{"title":660,"url":76},"Firebase, Test Lab (deprecation notice)",{"title":662,"url":663},"Firebase, migrate from Test Lab to the Developer Device Platform","https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fmigrate",{"title":665,"url":95},"Firebase, Test Lab migration FAQ",{"title":667,"url":668},"Google Cloud, migrating from Firebase Test Lab to the Developer Device Platform","https:\u002F\u002Fdocs.cloud.google.com\u002Fdeveloper-device-platform\u002Fdevice-run\u002Fmigrate",{"title":670,"url":671},"Google Cloud, Developer Device Platform command and flag translation","https:\u002F\u002Fdocs.cloud.google.com\u002Fdeveloper-device-platform\u002Fdevice-run\u002Fmigrate\u002Fflag-command-translation",{"title":673,"url":674},"Google Cloud, Developer Device Platform troubleshooting and FAQ","https:\u002F\u002Fdocs.cloud.google.com\u002Fdeveloper-device-platform\u002Ftroubleshooting",{"title":676,"url":677},"Google Cloud, Developer Device Platform pricing","https:\u002F\u002Fdocs.cloud.google.com\u002Fdeveloper-device-platform\u002Fpricing",{"title":679,"url":680},"Firebase, run a Test Lab test from the gcloud CLI (Android)","https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fandroid\u002Fcommand-line",{"title":682,"url":683},"Firebase, run a Test Lab test from the gcloud CLI (iOS)","https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fios\u002Fcommand-line",{"title":685,"url":686},"Firebase, Test Lab with continuous integration systems","https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Ftest-lab\u002Fandroid\u002Fcontinuous",{"title":688,"url":689},"Flutter, integration testing","https:\u002F\u002Fdocs.flutter.dev\u002Ftesting\u002Fintegration-tests",{"title":691,"url":692},"GitHub, Flutter integration_test package README","https:\u002F\u002Fgithub.com\u002Fflutter\u002Fflutter\u002Ftree\u002Fmain\u002Fpackages\u002Fintegration_test",{"title":694,"url":695},"Android Developers, Android Device Streaming in Android Studio","https:\u002F\u002Fdeveloper.android.com\u002Fstudio\u002Frun\u002Fandroid-device-streaming","blog\u002Ffirebase-test-lab-shutting-down-alternatives-2027","firebase test lab shutting down, firebase test lab alternatives, firebase test lab deprecated, developer device platform, gcloud beta device-run, android device streaming, flutter integration test firebase test lab, firebase test lab migration, gcloud firebase test android run, firebase deprecation 2027",[699,700,701,702,703],"Firebase Test Lab will be fully shut down on September 30, 2027. Firebase's migration FAQ says you won't be able to run any workflows after that date.","Google names one replacement, the Developer Device Platform on Google Cloud. It is in preview, it requires billing to be enabled, and its pricing matches Test Lab rates only through April 30, 2027.","The new gcloud beta device-run command supports Android instrumentation and iOS XCTest in preview. The pages I read do not map Robo or Game Loop tests, and the FAQ says Google can't commit to supporting Flutter\u002FFlutterDriver.","Android Device Streaming in Android Studio is not being deprecated. Firebase says it is a core feature of the Developer Device Platform.","If your pipeline follows Flutter's integration_test steps for Test Lab, the Android command uses --results-dir, which Google's translation table marks as unsupported on the new platform.","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027\u002F","kxfc5fawyjHdMraDj_Xvoz10sGfjKQUSRl7QEK15FKU",[707,1179,1757],{"id":708,"title":709,"author":710,"body":712,"category":621,"createdAt":1119,"description":1120,"disclosure":624,"extension":625,"faq":1121,"howTo":624,"lastVerified":624,"location":642,"meta":1139,"navigation":649,"ogImage":624,"path":1145,"primaryKeyword":1146,"readingTime":1147,"related":1148,"seo":1152,"sources":1153,"stem":1169,"tags":1170,"takeaways":1171,"updatedAt":1119,"url":1177,"__hash__":1178},"blog\u002Fblog\u002Ffirebase-deprecations-shutdown-dates-2026.md","Firebase Deprecations: Every Shutdown Date, 2024 to 2027",{"name":7,"social":711},{"twitter":9},{"type":11,"value":713,"toc":1107},[714,720,723,728,732,930,934,938,941,948,951,955,958,965,968,971,1003,1007,1010,1016,1020,1029,1033,1036,1043,1047,1092,1096,1098],[14,715,716,719],{},[17,717,718],{},"Firebase isn't shutting down, but seven of its products and APIs are being retired between 2024 and 2027, and five of the deadlines fall in 2027."," If your app uses Extensions, Firebase Studio, Firebase ML model hosting, Test Lab, device groups or the old FCM InstanceId APIs, you have a deadline. The table below lists each one with the date, what stops working and where Firebase says to move.",[14,721,722],{},"Every date here comes from Firebase's own documentation, linked in each row and in the sources. I checked each page on October 18, 2026. Google can change a deadline, so open the linked page before you plan around one.",[14,724,725,727],{},[17,726,33],{}," App369 is my studio. I build Flutter and Firebase apps, and I run my own product, Workspace369, on Firebase. The last section mentions what I sell. Google doesn't pay me for anything on this page.",[36,729,731],{"id":730},"every-firebase-shutdown-in-date-order","Every Firebase shutdown, in date order",[41,733,734,752],{},[44,735,736],{},[47,737,738,741,744,747,750],{},[50,739,740],{},"Deadline",[50,742,743],{},"What is retired",[50,745,746],{},"What stops working",[50,748,749],{},"Move to",[50,751,58],{},[60,753,754,787,812,834,856,878,910],{},[47,755,756,763,766,773,780],{},[65,757,758,759,762],{},"From ",[17,760,761],{},"July 22, 2024"," (done)",[65,764,765],{},"Legacy FCM HTTP and XMPP send APIs",[65,767,768,769,772],{},"Sending with a server key to ",[22,770,771],{},"fcm\u002Fsend",". Deprecated June 20, 2023",[65,774,775,776],{},"FCM HTTP v1 API or the Admin SDK. ",[74,777,779],{"href":778},"\u002Fblog\u002Ffcm-legacy-api-shutdown-http-v1-migration-2026\u002F","My guide",[65,781,782],{},[74,783,786],{"href":784,"rel":785},"https:\u002F\u002Fweb.archive.org\u002Fweb\u002F20260108211426\u002Fhttps:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcloud-messaging\u002Fmigrate-v1",[78],"Firebase (archived)",[47,788,789,794,797,800,806],{},[65,790,791,762],{},[17,792,793],{},"August 25, 2025",[65,795,796],{},"Firebase Dynamic Links",[65,798,799],{},"Dynamic Links, and email link sign-in that relied on them",[65,801,802,803],{},"Your own deep links. For email link sign-in, Firebase Authentication Android SDK 23.2.0 or later (BoM 33.9.0 or later). ",[74,804,779],{"href":805},"\u002Fblog\u002Ffirebase-dynamic-links-shutdown-deep-linking-2026\u002F",[65,807,808],{},[74,809,79],{"href":810,"rel":811},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fauth\u002Fandroid\u002Femail-link-migration",[78],[47,813,814,819,822,825,828],{},[65,815,816],{},[17,817,818],{},"March 22, 2027",[65,820,821],{},"Firebase Studio",[65,823,824],{},"Existing workspaces. New workspaces and signups already stopped on June 22, 2026",[65,826,827],{},"Google AI Studio, Google Antigravity, or an export of your source to another platform",[65,829,830],{},[74,831,79],{"href":832,"rel":833},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fstudio\u002Fmigrating-project",[78],[47,835,836,841,844,847,850],{},[65,837,838],{},[17,839,840],{},"March 31, 2027",[65,842,843],{},"Firebase Extensions",[65,845,846],{},"Updating, reconfiguring or uninstalling extensions, or downloading their configuration, through the console or CLI. Installed extensions keep running",[65,848,849],{},"Function kits on npm where the publisher offers one, or your own Cloud Functions (2nd gen)",[65,851,852],{},[74,853,79],{"href":854,"rel":855},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fextensions\u002Ffaq-and-troubleshooting",[78],[47,857,858,863,866,869,872],{},[65,859,860],{},[17,861,862],{},"June 15, 2027",[65,864,865],{},"Firebase ML custom model hosting",[65,867,868],{},"Hosting and serving custom models through Firebase ML",[65,870,871],{},"Cloud Storage for Firebase, per Firebase's guide",[65,873,874],{},[74,875,79],{"href":876,"rel":877},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fml\u002Fmigrate-to-cloud-storage",[78],[47,879,880,885,888,895,904],{},[65,881,882],{},[17,883,884],{},"September 29, 2027",[65,886,887],{},"FCM InstanceId server APIs and device groups",[65,889,890,891,894],{},"Requests to ",[22,892,893],{},"iid.googleapis.com"," and device group management start failing. New users are blocked after January 1, 2027",[65,896,897,898,901,902],{},"The FCM topic subscription API, HTTP v1 with ",[22,899,900],{},"validate_only",", and sends to individual tokens. ",[74,903,779],{"href":778},[65,905,906],{},[74,907,79],{"href":908,"rel":909},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcloud-messaging\u002Ftroubleshooting#fcm-26-deprecation",[78],[47,911,912,916,919,922,925],{},[65,913,914],{},[17,915,117],{},[65,917,918],{},"Firebase Test Lab",[65,920,921],{},"All of Test Lab",[65,923,924],{},"The Developer Device Platform on Google Cloud",[65,926,927],{},[74,928,79],{"href":76,"rel":929},[78],[36,931,933],{"id":932},"what-each-2027-deadline-means-in-practice","What each 2027 deadline means in practice",[230,935,937],{"id":936},"firebase-studio-march-22-2027","Firebase Studio: March 22, 2027",[14,939,940],{},"Firebase Studio launched as a preview to explore AI-driven, full-stack app development. Firebase's migration page points to Google AI Studio, for rapid browser-based prototyping, and Google Antigravity, for code-first agentic work. You can keep working in an existing workspace until March 22, 2027. Any project you want to keep must be migrated before then, and Firebase's page has steps for both destinations and for exporting the source to anywhere else.",[14,942,943,944,136],{},"For the step-by-step move, see ",[74,945,947],{"href":946},"\u002Fblog\u002Ffirebase-studio-shutting-down-migrate-project-2027\u002F","Firebase Studio is shutting down: how to migrate",[14,949,950],{},"Your Firebase backend isn't affected. Firebase says Firestore, Authentication, App Hosting and your data keep working outside Firebase Studio. One thing to test after a move: Firebase's own FAQ has an entry about Google Sign-In not working after migrating to Google AI Studio, so check sign-in first.",[230,952,954],{"id":953},"firebase-extensions-march-31-2027","Firebase Extensions: March 31, 2027",[14,956,957],{},"This one is easy to miss, because nothing breaks on the day. Firebase says installed extensions run on standard Google Cloud services (Cloud Functions, Eventarc, Cloud Run, Cloud Tasks) and keep executing. What you lose after March 31, 2027 is control: you can't change parameters or environment variables, apply fixes or security patches, uninstall through the console or CLI, or download the configuration to set up a replacement.",[14,959,960,961,136],{},"For the inventory and function kit steps, see ",[74,962,964],{"href":963},"\u002Fblog\u002Ffirebase-extensions-shutting-down-replace-2027\u002F","Firebase Extensions are shutting down: how to replace them",[14,966,967],{},"There's a second risk. Firebase notes that most extensions are built on the legacy Cloud Functions v1 SDK and older Node.js runtimes, and that functions may stop running or be disabled when Google Cloud retires those runtimes. So an extension you can't update may stop working once those runtimes are retired, and you won't be able to patch it.",[14,969,970],{},"Before March 31, 2027:",[484,972,973,979,985,991],{},[164,974,975,978],{},[17,976,977],{},"List what's installed."," In the Firebase console, open Extensions for each project, including staging and old projects.",[164,980,981,984],{},[17,982,983],{},"Uninstall what you no longer use."," After the deadline the Uninstall button goes away, and you'd have to delete the underlying resources by hand.",[164,986,987,990],{},[17,988,989],{},"Export the configuration of the rest."," You need the parameters to set up a replacement.",[164,992,993,996,997,1002],{},[17,994,995],{},"Replace each one."," Use the publisher's function kit on npm if there is one. If not, the extensions are open source, so a developer can rebuild one as Cloud Functions (2nd gen). Firebase's ",[74,998,1001],{"href":999,"rel":1000},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fextensions\u002Fusers\u002Fmigrate",[78],"guide for users"," covers both.",[230,1004,1006],{"id":1005},"firebase-ml-model-hosting-june-15-2027","Firebase ML model hosting: June 15, 2027",[14,1008,1009],{},"This only matters if you host custom TensorFlow Lite models through Firebase ML. On-device ML Kit features are a separate product. Firebase's suggested route is to download your models and host them in Cloud Storage for Firebase, and its guide covers Android, Apple platforms and Flutter, plus an optional move to the LiteRT CompiledModel API.",[14,1011,943,1012,136],{},[74,1013,1015],{"href":1014},"\u002Fblog\u002Ffirebase-ml-model-hosting-shutting-down-migrate-2027\u002F","Firebase ML model hosting is shutting down: how to migrate",[230,1017,1019],{"id":1018},"fcm-instanceid-apis-and-device-groups-september-29-2027","FCM InstanceId APIs and device groups: September 29, 2027",[14,1021,1022,1023,1025,1026,136],{},"If your server checks tokens with ",[22,1024,893],{},", manages topic subscriptions through the old InstanceId endpoints, imports APNs tokens in bulk, or uses device groups, those calls start failing after September 29, 2027. If you manage topics through an older Firebase Admin SDK, you're affected too. I cover each case and the replacement in the ",[74,1027,1028],{"href":778},"FCM guide",[230,1030,1032],{"id":1031},"test-lab-september-30-2027","Test Lab: September 30, 2027",[14,1034,1035],{},"Test Lab runs your Android and iOS tests on devices in Google's data centers. Firebase says it will be fully shut down on September 30, 2027, and points to the Developer Device Platform on Google Cloud, with a migration guide and FAQ linked from the Test Lab page. If Test Lab runs in your CI pipeline, budget time to move it and to compare device coverage and pricing before the deadline.",[14,1037,1038,1039,136],{},"For the options and a migration plan, see ",[74,1040,1042],{"href":1041},"\u002Fblog\u002Ffirebase-test-lab-shutting-down-alternatives-2027\u002F","Firebase Test Lab is shutting down: alternatives for 2027",[36,1044,1046],{"id":1045},"a-one-hour-check-for-your-project","A one-hour check for your project",[484,1048,1049,1074,1080,1086],{},[164,1050,1051,1054,1055,1057,1058,1057,1061,1057,1064,1067,1068,1071,1072,136],{},[17,1052,1053],{},"Search your code"," for ",[22,1056,893],{},", ",[22,1059,1060],{},"fcm.googleapis.com\u002Ffcm\u002F",[22,1062,1063],{},"page.link",[22,1065,1066],{},"firebase-ml-modeldownloader"," (or ",[22,1069,1070],{},"firebase_ml_model_downloader"," in Flutter), and ",[22,1073,220],{},[164,1075,1076,1079],{},[17,1077,1078],{},"Open the Firebase console"," for every project you own and look at Extensions, Machine Learning, Test Lab and Studio.",[164,1081,1082,1085],{},[17,1083,1084],{},"Write down each deadline"," that applies, with the owner of the fix and a target date at least a month early.",[164,1087,1088,1091],{},[17,1089,1090],{},"Start with the earliest deadlines."," Of the 2027 ones, Studio and Extensions come first, in March.",[14,1093,583,1094,136],{},[74,1095,587],{"href":586},[36,1097,591],{"id":590},[14,1099,1100,1101,1103,1104,1106],{},"If one of these migrations breaks something, such as pushes that stop arriving, a sign-in flow that fails after a move, or a Cloud Function that won't deploy, the ",[74,1102,598],{"href":597}," covers it in two fixed-price steps. A $450 Diagnosis gives you the root cause with evidence and a fixed repair quote within 3 business days, credited toward the fix. If you go ahead, the $1,200 Fix takes 5 business days. If you want help planning several migrations at once, ",[74,1105,603],{"href":602}," of your project.",{"title":191,"searchDepth":605,"depth":605,"links":1108},[1109,1110,1117,1118],{"id":730,"depth":605,"text":731},{"id":932,"depth":605,"text":933,"children":1111},[1112,1113,1114,1115,1116],{"id":936,"depth":613,"text":937},{"id":953,"depth":613,"text":954},{"id":1005,"depth":613,"text":1006},{"id":1018,"depth":613,"text":1019},{"id":1031,"depth":613,"text":1032},{"id":1045,"depth":605,"text":1046},{"id":590,"depth":605,"text":591},"2026-10-18T23:00:00.000Z","Every Firebase shutdown from 2024 to 2027 in one dated table: FCM legacy APIs, Dynamic Links, Firebase Studio, Extensions, Firebase ML model hosting, the FCM InstanceId APIs and Test Lab. What stops working, the deadline, and what to move to, from Firebase's own docs checked October 18, 2026.",[1122,1125,1128,1131,1133,1136],{"question":1123,"answer":1124},"Is Firebase shutting down?","No. Firebase is retiring some products and APIs, but core services such as Firestore, Authentication, Cloud Functions and Hosting are not on any shutdown list I found. Firebase says the Firebase Studio sunset doesn't affect Firestore, Authentication or App Hosting.",{"question":1126,"answer":1127},"What Firebase products are being deprecated in 2027?","Firebase Studio sunsets on March 22, 2027, Firebase Extensions shuts down on March 31, 2027, Firebase ML custom model hosting on June 15, 2027, the FCM InstanceId server APIs and device groups on September 29, 2027, and Test Lab on September 30, 2027.",{"question":1129,"answer":1130},"Will my Firebase Extensions stop working on March 31, 2027?","Not immediately. Firebase says already-deployed extensions keep running on Google Cloud infrastructure, but after March 31, 2027 you can't update, reconfigure or uninstall them through the Firebase console or CLI, or download their configuration. Firebase also warns that most extensions use the legacy Cloud Functions v1 SDK, which may stop running when older runtimes are decommissioned.",{"question":631,"answer":1132},"Firebase points Test Lab users to the Developer Device Platform on Google Cloud, with a migration guide and FAQ. Test Lab will be fully shut down on September 30, 2027.",{"question":1134,"answer":1135},"What happens to apps I built in Firebase Studio?","New workspaces and signups were disabled on June 22, 2026. You can keep working in existing workspaces until March 22, 2027, but you must migrate any project you want to keep before then. Firebase offers migration paths to Google AI Studio, Google Antigravity, or exporting the source to another platform.",{"question":1137,"answer":1138},"Where can I host custom ML models after Firebase ML?","Firebase suggests Cloud Storage for Firebase and has a guide for downloading your TensorFlow Lite models and uploading them there, with steps for Android, Apple platforms and Flutter. Firebase ML model hosting shuts down on June 15, 2027.",{"readingTimeStats":1140},{"text":1141,"minutes":1142,"time":1143,"words":1144},"6 min read",5.665,339900,1133,"\u002Fblog\u002Ffirebase-deprecations-shutdown-dates-2026","firebase deprecations","8 min",[1149,1150,1151],"fcm-legacy-api-shutdown-http-v1-migration-2026","firebase-dynamic-links-shutdown-deep-linking-2026","how-to-cut-your-firebase-bill-2026",{"title":709,"description":1120},[1154,1156,1158,1160,1162,1164,1166,1168],{"title":1155,"url":784},"Firebase, migrate from legacy FCM APIs to HTTP v1 (Wayback Machine copy, January 8, 2026)",{"title":1157,"url":810},"Firebase, migrating email link sign-in off Dynamic Links (Android)",{"title":1159,"url":832},"Firebase, Firebase Studio sunset and project migration",{"title":1161,"url":854},"Firebase, Firebase Extensions deprecation FAQ",{"title":1163,"url":999},"Firebase, migrate an extension to Cloud Functions as a user",{"title":1165,"url":876},"Firebase, migrate custom models from Firebase ML to Cloud Storage",{"title":1167,"url":908},"Firebase, FCM InstanceId API and device group deprecation (FAQ, announced September 2026)",{"title":660,"url":76},"blog\u002Ffirebase-deprecations-shutdown-dates-2026","firebase deprecations, firebase shutdown dates, firebase extensions deprecated, firebase test lab shut down, firebase studio sunset, firebase ml model hosting shut down, firebase dynamic links shutdown, fcm legacy api shutdown, firebase deprecation 2027, firebase migration checklist",[1172,1173,1174,1175,1176],"Five Firebase deadlines fall between March and September 2027: Firebase Studio (March 22), Extensions (March 31), Firebase ML model hosting (June 15), the FCM InstanceId APIs and device groups (September 29) and Test Lab (September 30).","Two shutdowns have already happened: sending through the legacy FCM APIs, from July 22, 2024, and Firebase Dynamic Links, on August 25, 2025.","Core services such as Firestore, Authentication, Cloud Functions and Hosting are not on the list, and Firebase says the Studio sunset doesn't affect Firestore, Authentication or App Hosting.","Installed Firebase Extensions keep running after March 31, 2027, but you can no longer update, reconfigure or uninstall them through Firebase, so migrate or uninstall them before then.","Every date here comes from Firebase's own documentation, checked on October 18, 2026. Deadlines can move, so check the linked page before you plan around one.","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirebase-deprecations-shutdown-dates-2026\u002F","sgyFwQkpd_gLjaaP7iUNbvUv_T-ENqm8em6pY6IA67w",{"id":1180,"title":1181,"author":1182,"body":1184,"category":621,"createdAt":1693,"description":1694,"disclosure":624,"extension":625,"faq":1695,"howTo":624,"lastVerified":624,"location":642,"meta":1711,"navigation":649,"ogImage":624,"path":1716,"primaryKeyword":1717,"readingTime":1147,"related":1718,"seo":1720,"sources":1721,"stem":1747,"tags":1748,"takeaways":1749,"updatedAt":1693,"url":1755,"__hash__":1756},"blog\u002Fblog\u002Ffirebase-extensions-shutting-down-replace-2027.md","Firebase Extensions Shutting Down: Replace Them by 2027",{"name":7,"social":1183},{"twitter":9},{"type":11,"value":1185,"toc":1676},[1186,1192,1195,1199,1201,1258,1262,1266,1269,1272,1283,1286,1289,1293,1296,1299,1302,1306,1309,1315,1318,1324,1344,1348,1351,1355,1358,1397,1400,1404,1411,1417,1435,1452,1461,1465,1472,1476,1487,1491,1517,1572,1575,1581,1588,1610,1614,1629,1633,1660,1663,1667,1669],[14,1187,1188,1191],{},[17,1189,1190],{},"The Firebase Extensions service shuts down on March 31, 2027, and Firebase says extensions you already installed keep running but can no longer be updated, reconfigured or uninstalled through the console or CLI."," Firebase's recommended replacement is a self-managed function kit, which is regular Cloud Functions code that lives in your own repository.",[14,1193,1194],{},"The facts below come from Firebase's documentation and a few GitHub repositories, as shown in the sources. I checked each one on October 18, 2026. Google can change a date, so open the linked page before you plan around it.",[14,1196,1197,34],{},[17,1198,33],{},[36,1200,39],{"id":38},[41,1202,1203,1213],{},[44,1204,1205],{},[47,1206,1207,1209,1211],{},[50,1208,52],{},[50,1210,55],{},[50,1212,58],{},[60,1214,1215,1230,1243],{},[47,1216,1217,1220,1223],{},[65,1218,1219],{},"June 18, 2026",[65,1221,1222],{},"The Stripe-built Firebase extensions repository is archived by its owner and marked not actively maintained",[65,1224,1225],{},[74,1226,1229],{"href":1227,"rel":1228},"https:\u002F\u002Fgithub.com\u002Finvertase\u002Fstripe-firebase-extensions",[78],"GitHub",[47,1231,1232,1235,1238],{},[65,1233,1234],{},"September 2026",[65,1236,1237],{},"Per the FAQ, additional migration guidance and tools are due this month, and two migration paths are officially supported from it. The page keeps the future tense. The migration guide and the BigQuery kit on npm are live now",[65,1239,1240],{},[74,1241,97],{"href":854,"rel":1242},[78],[47,1244,1245,1249,1252],{},[65,1246,1247],{},[17,1248,840],{},[65,1250,1251],{},"The Firebase Extensions service shuts down. Installed extensions keep executing, but key management features are no longer available",[65,1253,1254],{},[74,1255,79],{"href":1256,"rel":1257},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fextensions",[78],[14,1259,131,1260,136],{},[74,1261,135],{"href":134},[36,1263,1265],{"id":1264},"what-firebase-says-happens-to-installed-extensions","What Firebase says happens to installed extensions",[14,1267,1268],{},"The notice on the Extensions page reads: \"The Firebase Extensions service is deprecated and will shut down on March 31, 2027.\" It says already installed extensions will execute indefinitely, and recommends moving to self-managed function kits.",[14,1270,1271],{},"The FAQ spells out the loss. Deployed extensions run on standard Google Cloud infrastructure. After March 31, 2027, you cannot update, reconfigure or uninstall them through the console or CLI, and you cannot download their existing configuration. In practice, Firebase says that means you cannot:",[161,1273,1274,1277,1280],{},[164,1275,1276],{},"change parameters or environment variables",[164,1278,1279],{},"apply bug fixes, security patches or dependency upgrades",[164,1281,1282],{},"download the configuration to recreate the setup elsewhere",[14,1284,1285],{},"There is a second risk. Firebase says most extensions use the legacy Cloud Functions v1 SDK. Once Google decommissions the older Node.js runtimes, those functions may stop running or be disabled. After that, the console's Uninstall button and the related CLI commands are removed, and you would have to delete the resources by hand in the Google Cloud console.",[14,1287,1288],{},"My advice: treat March 31, 2027 as the last day you can still change anything, not as the day things break. Plan the move for the winter, while the tools still work.",[36,1290,1292],{"id":1291},"what-an-extension-leaves-in-your-project","What an extension leaves in your project",[14,1294,1295],{},"Firebase's FAQ says that after the shutdown you would delete these by hand in the Google Cloud console: the individual Cloud Functions, Secret Manager secrets, Cloud Tasks queues and custom IAM service accounts.",[14,1297,1298],{},"The FAQ also says extensions run on Cloud Functions, Eventarc, Cloud Run and Cloud Tasks, and that the Stream Firestore to BigQuery extension creates BigQuery datasets, tables and views during setup.",[14,1300,1301],{},"Those four kinds of resource matter because they are what you would delete manually once the uninstall button is gone. The best-practices page also describes what installing and deploying a kit creates: functions, Eventarc triggers, Cloud Tasks queues and a service account with IAM roles. It does not say what remains after an uninstall, so check your project's resources after you remove one.",[36,1303,1305],{"id":1304},"step-1-list-what-you-have-installed","Step 1: list what you have installed",[14,1307,1308],{},"Firebase's user migration guide gives this command:",[183,1310,1313],{"className":1311,"code":1312,"language":188},[186],"firebase ext:list --project my-project\n",[22,1314,1312],{"__ignoreMap":191},[14,1316,1317],{},"Firebase says the output shows Extension, Publisher, Instance ID, State, Version, Your last update and Replacement Kit. The console Extensions page also shows replacement availability. The CLI output carries a notice that Firebase Extensions will shut down on March 31, 2027.",[14,1319,1320,1321,136],{},"Run it for every project you own, including staging and old ones. For instance IDs only, the best-practices page gives ",[22,1322,1323],{},"firebase ext:list --json --project \u003Cproject-id> | jq -r '.result[].instanceId'",[14,1325,1326,1327,1330,1331,1057,1334,1057,1337,1057,1340,1343],{},"The guide needs ",[22,1328,1329],{},"firebase-tools"," 15.32.0 or later. Firebase also lists the IAM roles you need, including ",[22,1332,1333],{},"roles\u002Ffirebaseextensions.editor",[22,1335,1336],{},"roles\u002Fcloudbuild.builds.editor",[22,1338,1339],{},"roles\u002Fartifactregistry.writer",[22,1341,1342],{},"roles\u002Frun.developer"," and the two service account roles. If a role is missing, the migration fails, so check before you start.",[36,1345,1347],{"id":1346},"step-2-uninstall-what-you-dont-use","Step 2: uninstall what you don't use",[14,1349,1350],{},"Firebase says users who no longer need an extension should uninstall it before March 31, 2027. This is the cheapest fix. Every extension you remove is one less thing to migrate.",[36,1352,1354],{"id":1353},"step-3-pick-one-of-firebases-two-paths","Step 3: pick one of Firebase's two paths",[14,1356,1357],{},"Firebase says it officially supports two primary pathways.",[41,1359,1360,1373],{},[44,1361,1362],{},[47,1363,1364,1367,1370],{},[50,1365,1366],{},"Path",[50,1368,1369],{},"Firebase recommends it for",[50,1371,1372],{},"What you do",[60,1374,1375,1386],{},[47,1376,1377,1380,1383],{},[65,1378,1379],{},"NPM-shared function kit",[65,1381,1382],{},"Stream Firestore to BigQuery and other kits published on npm",[65,1384,1385],{},"Install a kit built on the Cloud Functions v2 SDK through the CLI",[47,1387,1388,1391,1394],{},[65,1389,1390],{},"Fork and self-manage",[65,1392,1393],{},"Extensions with no npm kit",[65,1395,1396],{},"Fork the source, refactor the triggers into v2 functions, and maintain the code yourself",[14,1398,1399],{},"Firebase also says upgrading to v2 is strongly recommended, and required for function kits.",[230,1401,1403],{"id":1402},"the-kit-path-in-firebases-words","The kit path, in Firebase's words",[14,1405,1406,1407,1410],{},"The user guide calls ",[22,1408,1409],{},"ext:migrate"," the recommended option:",[183,1412,1415],{"className":1413,"code":1414,"language":188},[186],"firebase ext:migrate --project \u003Cproject-id>\n",[22,1416,1414],{"__ignoreMap":191},[14,1418,1419,1420,1423,1424,1427,1428,1431,1432,1434],{},"You can narrow it with ",[22,1421,1422],{},"--extension firebase\u002Ffirestore-bigquery-export"," or ",[22,1425,1426],{},"--ext-instance \u003Cinstance-id>",". Firebase describes the command as one that selects the extension and instance, updates it, installs and configures the kit, deploys it, verifies it and uninstalls the extension. It warns that ",[22,1429,1430],{},"--force"," deletes the extension right after deploying the kit, with no verification. I would not use ",[22,1433,1430],{}," on a production project.",[14,1436,1437,1438,511,1441,1444,1445,1448,1449,136],{},"The manual option is two steps. First update the extension with ",[22,1439,1440],{},"firebase ext:update \u003Cextension-instance-id> --project \u003Cproject-id>",[22,1442,1443],{},"firebase deploy --only extensions --project \u003Cproject-id>",". Then install the kit with ",[22,1446,1447],{},"firebase functions:kits:install --template migration --no-configure --package \u003Cnpm-package-name> --project \u003Cproject-id>",". That creates a directory under ",[22,1450,1451],{},"function-kits\u002F",[14,1453,1454,1455,511,1458,136],{},"Firebase says kits are standard 2nd gen Cloud Functions managed with the Firebase CLI. Event-triggered kits use Eventarc, which can take a few minutes to provision. To check a kit after deploy, the guide lists ",[22,1456,1457],{},"firebase functions:logs",[22,1459,1460],{},"firebase functions:list | grep kit-\u003Ckit instance id>",[230,1462,1464],{"id":1463},"save-your-configuration-first","Save your configuration first",[14,1466,1467,1468,1471],{},"Firebase says that if you cannot migrate in time, save the configuration now, because after March 31, 2027 you cannot fetch it. The best-practices page uses ",[22,1469,1470],{},"firebase ext:export --mode functions",". Open the page's \"Saving configuration for future migration\" section for the exact syntax and output files.",[230,1473,1475],{"id":1474},"undoing-a-migration","Undoing a migration",[14,1477,1478,1479,1482,1483,1486],{},"Firebase's warning here is specific. To undo, reinstall the extension first, then run ",[22,1480,1481],{},"firebase functions:kits:uninstall --instance \u003Ckit-instance-id> --project \u003Cproject-id>",". The page says not to uninstall the kit before reinstalling the extension, or the CLI will delete the ",[22,1484,1485],{},".env"," file.",[36,1488,1490],{"id":1489},"which-popular-extensions-have-a-documented-kit","Which popular extensions have a documented kit",[14,1492,1493,1494,1497,1498,1057,1501,1057,1504,1057,1507,1057,1510,511,1513,1516],{},"The firebase\u002Fextensions repository has a ",[22,1495,1496],{},"kits"," branch with 13 kit folders, including ",[22,1499,1500],{},"firestore-bigquery-export",[22,1502,1503],{},"firestore-send-email",[22,1505,1506],{},"storage-resize-images",[22,1508,1509],{},"firestore-counter",[22,1511,1512],{},"firestore-translate-text",[22,1514,1515],{},"delete-user-data",". The main repository page itself carries no shutdown notice and says nothing about replacements, so the facts below come from each kit's README.",[41,1518,1519,1532],{},[44,1520,1521],{},[47,1522,1523,1526,1529],{},[50,1524,1525],{},"Extension",[50,1527,1528],{},"Kit package",[50,1530,1531],{},"What its README says",[60,1533,1534,1547,1560],{},[47,1535,1536,1539,1544],{},[65,1537,1538],{},"Stream Firestore to BigQuery",[65,1540,1541],{},[22,1542,1543],{},"@firebase-function-kits\u002Ffirestore-bigquery-export",[65,1545,1546],{},"Has a \"Migrating from the extension\" section. Released on npm (0.1.1 on October 18, 2026)",[47,1548,1549,1552,1557],{},[65,1550,1551],{},"Trigger Email from Firestore",[65,1553,1554],{},[22,1555,1556],{},"@firebase-function-kits\u002Ffirestore-send-email",[65,1558,1559],{},"Has a section on differences from the extension. Carries a pre-release notice",[47,1561,1562,1565,1570],{},[65,1563,1564],{},"Resize Images",[65,1566,1567],{},[22,1568,1569],{},"@firebase-function-kits\u002Fstorage-resize-images",[65,1571,1559],{},[14,1573,1574],{},"The BigQuery kit README gives this migration command, run from your Firebase project directory:",[183,1576,1579],{"className":1577,"code":1578,"language":188},[186],"firebase ext:migrate --ext-instance \u003Cinstance-id>\n",[22,1580,1578],{"__ignoreMap":191},[14,1582,1583,1584,1587],{},"It says the command exports the instance's configuration, deploys the kit, then offers to uninstall the extension. It also warns that writes made while the new trigger warms up can reach neither exporter. To avoid that gap, the README says to answer no to the uninstall prompt, confirm the kit logs every write, then run ",[22,1585,1586],{},"firebase ext:uninstall \u003Cinstance-id> --immediate",". It says running both at once is safe, because BigQuery deduplicates on the shared event ID on a best-effort basis.",[14,1589,1590,1591,1594,1595,1598,1599,1602,1603,1606,1607,1609],{},"For the email and image kits, the READMEs I read say the kit \"has not been released yet,\" that the npm ",[22,1592,1593],{},"latest"," tag is a placeholder, and that pre-release builds are published under the ",[22,1596,1597],{},"next"," tag. Both mention ",[22,1600,1601],{},"firebase ext:migrate",", which prompts for a region and writes ",[22,1604,1605],{},"FUNCTION_DEFAULT_REGION"," to your ",[22,1608,1485],{},". Check the README and the npm page for release status before you plan a production move to either one.",[230,1611,1613],{"id":1612},"the-stripe-payments-extension","The Stripe payments extension",[14,1615,1616,1617,1620,1621,1624,1625,1628],{},"This one has a different history. Stripe's repository, described as \"Repository of Firebase Extensions built by Stripe,\" was archived by its owner on June 18, 2026. Its notice says the repository is not actively maintained and that no further updates, bug fixes or support will be provided. It also records a 2023 notice that the payments extension was transferred to Invertase, with a recommendation to uninstall ",[22,1618,1619],{},"stripe\u002Ffirestore-stripe-payments"," and install ",[22,1622,1623],{},"invertase\u002Ffirestore-stripe-payments",". The page says nothing about the Firebase Extensions shutdown. So if you run a Stripe extension, check which publisher your instance comes from in the ",[22,1626,1627],{},"ext:list"," output.",[36,1630,1632],{"id":1631},"a-short-checklist","A short checklist",[484,1634,1635,1642,1645,1648,1651,1654,1657],{},[164,1636,1637,1638,1641],{},"Run ",[22,1639,1640],{},"firebase ext:list"," in every project and write down each instance.",[164,1643,1644],{},"Save the configuration of every extension, because you can't fetch it after March 31, 2027.",[164,1646,1647],{},"Uninstall every extension you no longer use, once its config is saved.",[164,1649,1650],{},"For each one, check the Replacement Kit column and the kit's README.",[164,1652,1653],{},"If there is no kit, plan a fork or a rewrite as Cloud Functions v2.",[164,1655,1656],{},"Run the replacement before you uninstall the old one. Only the BigQuery kit README says both can run at once. For email or image extensions, test in a staging project or pause writers so you don't send or process twice.",[164,1658,1659],{},"Finish well before March 31, 2027.",[14,1661,1662],{},"My advice: migrate the extension that touches money or user data first, and keep the old one installed until the replacement has logged real traffic. For email or image extensions, do that check in a staging project first, so nothing is sent or processed twice.",[14,1664,583,1665,136],{},[74,1666,587],{"href":586},[36,1668,591],{"id":590},[14,1670,1671,1672,599,1674,136],{},"If your app depends on Firebase Extensions and you want them replaced with code you control before the shutdown, the ",[74,1673,598],{"href":597},[74,1675,603],{"href":602},{"title":191,"searchDepth":605,"depth":605,"links":1677},[1678,1679,1680,1681,1682,1683,1688,1691,1692],{"id":38,"depth":605,"text":39},{"id":1264,"depth":605,"text":1265},{"id":1291,"depth":605,"text":1292},{"id":1304,"depth":605,"text":1305},{"id":1346,"depth":605,"text":1347},{"id":1353,"depth":605,"text":1354,"children":1684},[1685,1686,1687],{"id":1402,"depth":613,"text":1403},{"id":1463,"depth":613,"text":1464},{"id":1474,"depth":613,"text":1475},{"id":1489,"depth":605,"text":1490,"children":1689},[1690],{"id":1612,"depth":613,"text":1613},{"id":1631,"depth":605,"text":1632},{"id":590,"depth":605,"text":591},"2026-10-19T00:15:00.000Z","Firebase Extensions shuts down on March 31, 2027. Installed extensions keep running, but you lose updating, reconfiguring and uninstalling. The dated timeline, how to list your extensions, and the migration paths Firebase documents, checked October 18, 2026.",[1696,1699,1702,1705,1708],{"question":1697,"answer":1698},"When does Firebase Extensions shut down?","On March 31, 2027. The Firebase Extensions page says the service is deprecated and will shut down on that date. The FAQ adds that additional migration guidance and tools were due in September 2026, per the FAQ's own wording.",{"question":1700,"answer":1701},"Will my installed extensions stop working on March 31, 2027?","Not on that day. Firebase says already-deployed extensions run on standard Google Cloud infrastructure and continue to execute. What goes away is management: you cannot update, reconfigure or uninstall them through the console or CLI, or download their configuration. Firebase also warns that most extensions use the legacy Cloud Functions v1 SDK, and that they may stop running once older Node.js runtimes are decommissioned.",{"question":1703,"answer":1704},"What does Firebase recommend instead of extensions?","Self-managed function kits. Firebase's first path is an npm-shared kit built on the Cloud Functions v2 SDK and installed through the CLI. Its second path, for extensions with no kit, is to fork the extension source, refactor the triggers into v2 functions and maintain the code yourself.",{"question":1706,"answer":1707},"How do I see which extensions my project has installed?","Run firebase ext:list --project \u003Cproject-id>. Firebase says the output shows the extension, publisher, instance ID, state, version, your last update and a Replacement Kit column. The console Extensions page also shows whether a replacement is available.",{"question":1709,"answer":1710},"What about the Stripe payments extension?","Stripe's Firebase extensions repository says it was archived by its owner on June 18, 2026 and is no longer maintained. It also notes the 2023 transfer of the payments extension to Invertase. That is a repository status, not a Firebase shutdown notice, so check the extension you actually run.",{"readingTimeStats":1712},{"text":645,"minutes":1713,"time":1714,"words":1715},7.76,465600,1552,"\u002Fblog\u002Ffirebase-extensions-shutting-down-replace-2027","firebase extensions shutting down",[654,1719,656],"firebase-studio-shutting-down-migrate-project-2027",{"title":1181,"description":1694},[1722,1724,1726,1727,1730,1733,1736,1739,1742,1745],{"title":1723,"url":1256},"Firebase, Firebase Extensions overview (deprecation notice)",{"title":1725,"url":854},"Firebase, Firebase Extensions deprecation FAQ and troubleshooting",{"title":1163,"url":999},{"title":1728,"url":1729},"Firebase, post-migration best practices","https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fextensions\u002Fmigration-best-practices",{"title":1731,"url":1732},"GitHub, firebase\u002Fextensions repository","https:\u002F\u002Fgithub.com\u002Ffirebase\u002Fextensions",{"title":1734,"url":1735},"GitHub, firestore-bigquery-export function kit README","https:\u002F\u002Fgithub.com\u002Ffirebase\u002Fextensions\u002Ftree\u002Fkits\u002Fkits\u002Ffirestore-bigquery-export",{"title":1737,"url":1738},"GitHub, firestore-send-email function kit README","https:\u002F\u002Fgithub.com\u002Ffirebase\u002Fextensions\u002Ftree\u002Fkits\u002Fkits\u002Ffirestore-send-email",{"title":1740,"url":1741},"GitHub, storage-resize-images function kit README","https:\u002F\u002Fgithub.com\u002Ffirebase\u002Fextensions\u002Ftree\u002Fkits\u002Fkits\u002Fstorage-resize-images",{"title":1743,"url":1744},"GitHub, function kits folder in firebase\u002Fextensions","https:\u002F\u002Fgithub.com\u002Ffirebase\u002Fextensions\u002Ftree\u002Fkits\u002Fkits",{"title":1746,"url":1227},"GitHub, Stripe Firebase extensions repository","blog\u002Ffirebase-extensions-shutting-down-replace-2027","firebase extensions shutting down, firebase extensions deprecated, firebase extensions replacement, firebase extensions march 31 2027, firebase ext migrate, firebase function kits, firestore bigquery export kit, trigger email firebase replacement, resize images extension replacement, stripe firebase extension archived",[1750,1751,1752,1753,1754],"The Firebase Extensions service shuts down on March 31, 2027. Firebase says already-installed extensions keep executing, but after that date you cannot update, reconfigure or uninstall them through the console or CLI, or download their configuration.","Firebase names two migration paths: an npm-shared function kit, recommended for Stream Firestore to BigQuery and other kits on npm, or forking the extension source and managing it yourself as Cloud Functions v2.","Run firebase ext:list --project \u003Cproject-id> to see every installed extension. Its output includes a Replacement Kit column, and the migration guide needs firebase-tools 15.32.0 or later.","Most extensions use the legacy Cloud Functions v1 SDK. Firebase warns that functions may stop running or be disabled once Google decommissions the older Node.js runtimes.","Firebase says to save your configuration while you still can, because after March 31, 2027 you cannot fetch it. Uninstall extensions you no longer use before that date.","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirebase-extensions-shutting-down-replace-2027\u002F","F83ZxEQPwFb0459hCMQcQUnGp657rrTS8Dks6m7nj_s",{"id":1758,"title":1759,"author":1760,"body":1762,"category":621,"createdAt":2374,"description":2375,"disclosure":624,"extension":625,"faq":2376,"howTo":624,"lastVerified":624,"location":642,"meta":2392,"navigation":649,"ogImage":624,"path":2398,"primaryKeyword":2399,"readingTime":2400,"related":2401,"seo":2404,"sources":2405,"stem":2436,"tags":2437,"takeaways":2438,"updatedAt":2374,"url":2444,"__hash__":2445},"blog\u002Fblog\u002Fapp-store-google-play-deadlines-2026-2027.md","App Store and Google Play Deadlines for 2026 and 2027",{"name":7,"social":1761},{"twitter":9},{"type":11,"value":1763,"toc":2366},[1764,1770,1773,1778,1782,2272,2284,2287,2298,2301,2305,2322,2325,2329,2344,2347,2351,2357,2359],[14,1765,1766,1769],{},[17,1767,1768],{},"The App Store and Google Play requirements that affect mobile app owners in 2026 and 2027 fit in one table: Xcode 26 uploads since April 28, 2026, target API 36 and Play Billing Library 8 since August 31, 2026, 16 KB page size support from February 1, 2027, and five Firebase shutdowns between March 22 and September 30, 2027."," The table below is sorted by date, and every row links to the page where the platform states it.",[14,1771,1772],{},"I checked each one on October 18, 2026. Rows whose date has passed are marked \"In effect\".",[14,1774,1775,1777],{},[17,1776,33],{}," App369 is my studio. I build and fix Android and iOS apps, mostly in Flutter, and the last section mentions what I sell. Apple and Google don't pay me for anything on this page.",[36,1779,1781],{"id":1780},"all-dates-in-order","All dates, in order",[41,1783,1784,1800],{},[44,1785,1786],{},[47,1787,1788,1790,1793,1796,1798],{},[50,1789,52],{},[50,1791,1792],{},"What changes",[50,1794,1795],{},"Status",[50,1797,58],{},[50,1799,779],{},[60,1801,1802,1829,1852,1878,1902,1922,1951,1976,2003,2028,2054,2076,2100,2124,2145,2166,2187,2208,2231,2251],{},[47,1803,1804,1807,1813,1816,1823],{},[65,1805,1806],{},"January 31, 2026",[65,1808,1809,1812],{},[17,1810,1811],{},"Apple."," Apple asked developers to answer the updated age rating questions in App Store Connect by this date, to avoid an interruption when submitting app updates. Affects: every app on the App Store.",[65,1814,1815],{},"In effect",[65,1817,1818],{},[74,1819,1822],{"href":1820,"rel":1821},"https:\u002F\u002Fdeveloper.apple.com\u002Fnews\u002Fupcoming-requirements\u002F",[78],"Apple",[65,1824,1825],{},[74,1826,1828],{"href":1827},"\u002Fblog\u002Fapp-store-age-rating-questions-update-2026\u002F","Age rating questions",[47,1830,1831,1834,1839,1841,1846],{},[65,1832,1833],{},"April 28, 2026",[65,1835,1836,1838],{},[17,1837,1811],{}," Uploads to App Store Connect must be built with Xcode 26 or later, using an SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26 or watchOS 26. Affects: anyone uploading a build, including Flutter apps.",[65,1840,1815],{},[65,1842,1843],{},[74,1844,1822],{"href":1820,"rel":1845},[78],[65,1847,1848],{},[74,1849,1851],{"href":1850},"\u002Fblog\u002Fitms-90725-sdk-version-issue-xcode-26-flutter-2026\u002F","ITMS-90725 and Xcode 26",[47,1853,1854,1857,1863,1865,1872],{},[65,1855,1856],{},"August 31, 2026",[65,1858,1859,1862],{},[17,1860,1861],{},"Google Play."," New apps and app updates must target Android 16 (API level 36) or higher. Wear OS and Android Automotive OS apps need API 35, and Android XR apps need API 34. Affects: anyone publishing a new app or an update.",[65,1864,1815],{},[65,1866,1867],{},[74,1868,1871],{"href":1869,"rel":1870},"https:\u002F\u002Fsupport.google.com\u002Fgoogleplay\u002Fandroid-developer\u002Fanswer\u002F11926878",[78],"Play Console Help",[65,1873,1874],{},[74,1875,1877],{"href":1876},"\u002Fblog\u002Fgoogle-play-target-api-36-android-16-requirement-2026\u002F","Target API 36",[47,1879,1880,1882,1887,1889,1896],{},[65,1881,1856],{},[65,1883,1884,1886],{},[17,1885,1861],{}," New apps and updates must use Play Billing Library 8 or later. Version 7 is no longer accepted by default. Affects: apps with in-app purchases or subscriptions.",[65,1888,1815],{},[65,1890,1891],{},[74,1892,1895],{"href":1893,"rel":1894},"https:\u002F\u002Fdeveloper.android.com\u002Fgoogle\u002Fplay\u002Fbilling\u002Fdeprecation-faq",[78],"Android Developers",[65,1897,1898],{},[74,1899,1901],{"href":1900},"\u002Fblog\u002Fplay-billing-library-7-deprecated-update-to-8-2026\u002F","Billing Library 8",[47,1903,1904,1907,1912,1914,1919],{},[65,1905,1906],{},"September 9, 2026",[65,1908,1909,1911],{},[17,1910,1811],{}," iOS and iPadOS apps uploaded to App Store Connect must target iOS 13 or later. Affects: anyone uploading an iOS or iPadOS build.",[65,1913,1815],{},[65,1915,1916],{},[74,1917,1822],{"href":1820,"rel":1918},[78],[65,1920,1921],{},"None",[47,1923,1924,1927,1932,1934,1945],{},[65,1925,1926],{},"September 14, 2026",[65,1928,1929,1931],{},[17,1930,1811],{}," Xcode 27 was released. Flutter's docs say Apple mandates the UIScene life cycle for UIKit apps built with the iOS 27 SDK, and that Flutter apps built with Xcode 27 without it fail to launch. Affects: anyone building with Xcode 27, including Flutter apps with a custom AppDelegate.",[65,1933,1815],{},[65,1935,1936,1057,1941],{},[74,1937,1940],{"href":1938,"rel":1939},"https:\u002F\u002Fdocs.flutter.dev\u002Frelease\u002Fbreaking-changes\u002Fuiscenedelegate",[78],"Flutter docs",[74,1942,1822],{"href":1943,"rel":1944},"https:\u002F\u002Fdeveloper.apple.com\u002Fnews\u002Freleases\u002F",[78],[65,1946,1947],{},[74,1948,1950],{"href":1949},"\u002Fblog\u002Fflutter-uiscene-migration-xcode-27-app-wont-launch-2026\u002F","UIScene migration",[47,1952,1953,1956,1962,1964,1970],{},[65,1954,1955],{},"September 30, 2026",[65,1957,1958,1961],{},[17,1959,1960],{},"Google Play \u002F Android."," Developer verification protections begin for apps installed from participating stores in Brazil, Indonesia, Singapore and Thailand on certified devices running Android 7 or higher. Affects: anyone distributing Android apps.",[65,1963,1815],{},[65,1965,1966],{},[74,1967,1895],{"href":1968,"rel":1969},"https:\u002F\u002Fdeveloper.android.com\u002Fdeveloper-verification",[78],[65,1971,1972],{},[74,1973,1975],{"href":1974},"\u002Fblog\u002Fandroid-developer-verification-requirement-2026\u002F","Developer verification",[47,1977,1978,1981,1987,1990,1997],{},[65,1979,1980],{},"October 30, 2026",[65,1982,1983,1986],{},[17,1984,1985],{},"Google APIs."," Google says the legacy Fitbit Web API will be turned off and will no longer function or sync data. Support already ended on September 30, 2026. Affects: apps that read Fitbit data through the Fitbit Web API.",[65,1988,1989],{},"Upcoming",[65,1991,1992],{},[74,1993,1996],{"href":1994,"rel":1995},"https:\u002F\u002Fdevelopers.google.com\u002Fhealth",[78],"Google Health API",[65,1998,1999],{},[74,2000,2002],{"href":2001},"\u002Fblog\u002Fgoogle-fit-api-deprecated-health-connect-2026\u002F","Google Fit to Health Connect",[47,2004,2005,2007,2013,2015,2022],{},[65,2006,1980],{},[65,2008,2009,2012],{},[17,2010,2011],{},"Supabase."," New tables in the public schema stop getting automatic Data API access in existing projects, so they need an explicit grant. Affects: apps with a Supabase backend.",[65,2014,1989],{},[65,2016,2017],{},[74,2018,2021],{"href":2019,"rel":2020},"https:\u002F\u002Fsupabase.com\u002Fchangelog\u002F45329-breaking-change-tables-not-exposed-to-data-and-graphql-api-automatically",[78],"Supabase",[65,2023,2024],{},[74,2025,2027],{"href":2026},"\u002Fblog\u002Fsupabase-permission-denied-new-tables-october-30-2026\u002F","Supabase permission denied",[47,2029,2030,2033,2038,2040,2048],{},[65,2031,2032],{},"November 1, 2026",[65,2034,2035,2037],{},[17,2036,1861],{}," End of the extension Google offers for the target API 36 and Billing Library 7 deadlines. Affects: anyone who requested an extension.",[65,2039,1989],{},[65,2041,2042,1057,2045],{},[74,2043,1871],{"href":1869,"rel":2044},[78],[74,2046,1895],{"href":1893,"rel":2047},[78],[65,2049,2050,1057,2052],{},[74,2051,1877],{"href":1876},[74,2053,1901],{"href":1900},[47,2055,2056,2059,2064,2066,2072],{},[65,2057,2058],{},"End of 2026",[65,2060,2061,2063],{},[17,2062,1985],{}," The Google Fit APIs, including the REST API, are supported only until the end of 2026. Affects: apps that read fitness data through Google Fit.",[65,2065,1989],{},[65,2067,2068],{},[74,2069,1895],{"href":2070,"rel":2071},"https:\u002F\u002Fdeveloper.android.com\u002Fhealth-and-fitness\u002Fhealth-connect\u002Fmigration\u002Ffit",[78],[65,2073,2074],{},[74,2075,2002],{"href":2001},[47,2077,2078,2081,2087,2089,2095],{},[65,2079,2080],{},"January 1, 2027",[65,2082,2083,2086],{},[17,2084,2085],{},"Firebase."," New users can no longer start using the FCM InstanceId server APIs and device groups. Firebase says new users can onboard before this date. Affects: new integrations that use those APIs.",[65,2088,1989],{},[65,2090,2091],{},[74,2092,79],{"href":2093,"rel":2094},"https:\u002F\u002Ffirebase.google.com\u002Fdocs\u002Fcloud-messaging\u002Ftroubleshooting",[78],[65,2096,2097],{},[74,2098,2099],{"href":778},"FCM migration",[47,2101,2102,2105,2110,2112,2118],{},[65,2103,2104],{},"February 1, 2027",[65,2106,2107,2109],{},[17,2108,1861],{}," Updates that don't support 16 KB memory page sizes can't be released, for apps targeting Android 15 (API level 35) and higher. Affects: apps with native code, which includes Flutter apps.",[65,2111,1989],{},[65,2113,2114],{},[74,2115,1895],{"href":2116,"rel":2117},"https:\u002F\u002Fdeveloper.android.com\u002Fguide\u002Fpractices\u002Fpage-sizes",[78],[65,2119,2120],{},[74,2121,2123],{"href":2122},"\u002Fblog\u002Fgoogle-play-16kb-page-size-flutter-android-2026\u002F","16 KB page size",[47,2125,2126,2129,2134,2136,2141],{},[65,2127,2128],{},"2027 (no month stated)",[65,2130,2131,2133],{},[17,2132,1960],{}," Developer verification capability expands globally for all apps on certified Android devices. Affects: anyone distributing Android apps.",[65,2135,1989],{},[65,2137,2138],{},[74,2139,1895],{"href":1968,"rel":2140},[78],[65,2142,2143],{},[74,2144,1975],{"href":1974},[47,2146,2147,2149,2154,2156,2161],{},[65,2148,818],{},[65,2150,2151,2153],{},[17,2152,2085],{}," Firebase Studio shuts down and remaining data is permanently deleted. Affects: anyone with a Firebase Studio workspace.",[65,2155,1989],{},[65,2157,2158],{},[74,2159,79],{"href":832,"rel":2160},[78],[65,2162,2163],{},[74,2164,2165],{"href":946},"Firebase Studio shutdown",[47,2167,2168,2170,2175,2177,2182],{},[65,2169,840],{},[65,2171,2172,2174],{},[17,2173,2085],{}," Firebase Extensions service shuts down. Installed extensions keep running, but you lose the ability to update, reconfigure or uninstall them through the console or CLI. Affects: apps with installed extensions.",[65,2176,1989],{},[65,2178,2179],{},[74,2180,79],{"href":854,"rel":2181},[78],[65,2183,2184],{},[74,2185,2186],{"href":963},"Firebase Extensions shutdown",[47,2188,2189,2191,2196,2198,2203],{},[65,2190,862],{},[65,2192,2193,2195],{},[17,2194,2085],{}," Firebase ML custom model hosting shuts down. Affects: apps that host custom models in Firebase ML.",[65,2197,1989],{},[65,2199,2200],{},[74,2201,79],{"href":876,"rel":2202},[78],[65,2204,2205],{},[74,2206,2207],{"href":1014},"Firebase ML model hosting shutdown",[47,2209,2210,2213,2218,2220,2225],{},[65,2211,2212],{},"August 31, 2027",[65,2214,2215,2217],{},[17,2216,1861],{}," Billing Library 8 reaches its own deadline. New apps and updates must use Billing Library 9 or later. Extension available until November 1, 2027. Affects: apps with in-app purchases or subscriptions.",[65,2219,1989],{},[65,2221,2222],{},[74,2223,1895],{"href":1893,"rel":2224},[78],[65,2226,2227],{},[74,2228,2230],{"href":2229},"\u002Fblog\u002Fplay-billing-library-9-migration-deadline-2027\u002F","Billing Library 9",[47,2232,2233,2235,2240,2242,2247],{},[65,2234,884],{},[65,2236,2237,2239],{},[17,2238,2085],{}," The FCM InstanceId server APIs and device groups are decommissioned. Affects: servers that manage topics or tokens through the old APIs.",[65,2241,1989],{},[65,2243,2244],{},[74,2245,79],{"href":2093,"rel":2246},[78],[65,2248,2249],{},[74,2250,2099],{"href":778},[47,2252,2253,2255,2260,2262,2267],{},[65,2254,117],{},[65,2256,2257,2259],{},[17,2258,2085],{}," Firebase Test Lab is fully shut down. Affects: CI pipelines that run tests on Test Lab.",[65,2261,1989],{},[65,2263,2264],{},[74,2265,79],{"href":76,"rel":2266},[78],[65,2268,2269],{},[74,2270,2271],{"href":1041},"Firebase Test Lab shutdown",[14,2273,2274,2275,2279,2280,2283],{},"Two more notes. Apple's privacy manifest rules (May 1, 2024 for required reason APIs and February 12, 2025 for common SDKs, see the ",[74,2276,2278],{"href":2277},"\u002Fblog\u002Fapple-privacy-manifest-itms-91053-itms-91061-flutter-fix-2026\u002F","privacy manifest guide",") and the FCM legacy send shutdown (July 22, 2024, see the ",[74,2281,2282],{"href":778},"FCM migration guide",") already passed before 2026. I keep them in their own guides because they still cause upload and delivery errors.",[36,2285,1822],{"id":2286},"apple",[14,2288,2289,2290,1057,2292,511,2295,136],{},"Apple's page names one build rule that matters most: Xcode 26 or later since April 28, 2026. As of October 18, 2026, it lists no Xcode 27 upload requirement. The bigger change with Xcode 27 is the UIScene life cycle, which a Flutter app on 3.41 or later with an unmodified AppDelegate gets automatically. A custom AppDelegate needs manual changes. The guides are ",[74,2291,1851],{"href":1850},[74,2293,2294],{"href":1949},"UIScene and Xcode 27",[74,2296,2297],{"href":2277},"privacy manifest errors",[14,2299,2300],{},"My advice: check which Xcode your build machine uses before your next upload, and test a build with Xcode 27 before you need one.",[36,2302,2304],{"id":2303},"google-play-and-android","Google Play and Android",[14,2306,2307,2308,2311,2312,1057,2315,1057,2317,511,2319,136],{},"The Play rules come in pairs. Target API 36 and Billing Library 8 both took effect on August 31, 2026 with an extension to November 1, 2026. After that, February 1, 2027 brings the 16 KB page size rule, and on August 31, 2027 Google requires Billing Library 9 or later for new apps and updates. The ",[74,2309,2310],{"href":2229},"Billing Library 9 guide"," covers that move. Separately, Android developer verification started on September 30, 2026 in four countries, with a global expansion in 2027. The guides are ",[74,2313,2314],{"href":1876},"target API 36",[74,2316,2123],{"href":2122},[74,2318,1901],{"href":1900},[74,2320,2321],{"href":1974},"developer verification",[14,2323,2324],{},"My advice: if you are still behind on API 36 or Billing 8, ship that update before November 1, 2026. Then do the 16 KB check before February 1, 2027, since it is the next date that can block a release.",[36,2326,2328],{"id":2327},"firebase-and-google-apis","Firebase and Google APIs",[14,2330,2331,2332,1057,2335,1057,2338,2340,2341,136],{},"Firebase has five shutdown dates in 2027, plus the January 1 cutoff for new users of the InstanceId APIs. Firestore, Authentication, Cloud Functions and Hosting are not on the list. Google Fit APIs are supported only until the end of 2026, and Google points to Health Connect and the Google Health API. The legacy Fitbit Web API goes first: Google says it will be turned off on October 30, 2026. The guides are ",[74,2333,2334],{"href":134},"Firebase shutdown dates",[74,2336,2337],{"href":778},"FCM HTTP v1 migration",[74,2339,2002],{"href":2001}," and, if you use it, ",[74,2342,2343],{"href":2026},"Supabase new table permissions",[14,2345,2346],{},"My advice: open the Firebase console for every project you own and look at Extensions, Machine Learning, Test Lab and Studio. Those are the products with a date attached.",[36,2348,2350],{"id":2349},"how-i-keep-this-page-current","How I keep this page current",[14,2352,2353,2354,136],{},"Every row links to the page where the platform states the date. If a source says only a month or \"later this year\", I write exactly that. When a platform moves a date, I change the row and the updated date at the top of this page. If you spot a date that looks wrong, ",[74,2355,2356],{"href":602},"tell me",[36,2358,591],{"id":590},[14,2360,2361,2362,599,2364,136],{},"If one of these deadlines lands on an app you can't update yourself, the ",[74,2363,598],{"href":597},[74,2365,603],{"href":602},{"title":191,"searchDepth":605,"depth":605,"links":2367},[2368,2369,2370,2371,2372,2373],{"id":1780,"depth":605,"text":1781},{"id":2286,"depth":605,"text":1822},{"id":2303,"depth":605,"text":2304},{"id":2327,"depth":605,"text":2328},{"id":2349,"depth":605,"text":2350},{"id":590,"depth":605,"text":591},"2026-10-18T22:00:00.000Z","One dated table of the App Store, Google Play, Firebase and Google API requirements that affect mobile app owners in 2026 and 2027, with the primary source for each date, checked October 18, 2026.",[2377,2380,2383,2386,2389],{"question":2378,"answer":2379},"What is the next Google Play deadline?","The deadline of November 1, 2026 is the end of the extension window for the target API 36 and Billing Library 7 deadlines. After that, the next one is February 1, 2027, when Google says app updates that don't support 16 KB memory page sizes can't be released.",{"question":2381,"answer":2382},"What Xcode version does the App Store require?","Apple's upcoming requirements page says that since April 28, 2026, apps uploaded to App Store Connect must be built with Xcode 26 or later using an SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26 or watchOS 26. As of October 18, 2026, the page lists no Xcode 27 requirement.",{"question":2384,"answer":2385},"Do these deadlines apply to apps already published?","It depends on the rule. Google says existing apps must target API 35 or higher to stay available to new users on newer Android versions, and existing apps keep working on version 7 of Play Billing until you ship an update. Most upload-side rules, such as the Xcode SDK minimum, apply when you submit a new build.",{"question":2387,"answer":2388},"Which deadlines affect a Flutter app?","Nearly all of the Apple and Google Play rows do, because a Flutter app is a normal iOS and Android app underneath. The Firebase rows apply only if you use that Firebase product. The Supabase row applies only if you use Supabase.",{"question":2390,"answer":2391},"How will I know if a date changes?","Each row links to the page where the platform states the date, and I list the date I checked it. Dates can move, so check the linked page before you plan around one. I update this page when a platform changes a date.",{"readingTimeStats":2393},{"text":2394,"minutes":2395,"time":2396,"words":2397},"7 min read",6.805,408300,1361,"\u002Fblog\u002Fapp-store-google-play-deadlines-2026-2027","app store deadlines 2026","6 min",[2402,2403,654],"google-play-target-api-36-android-16-requirement-2026","itms-90725-sdk-version-issue-xcode-26-flutter-2026",{"title":1759,"description":2375},[2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434],{"title":2407,"url":1994},"Google for Developers, Google Health API (Fitbit Web API dates)",{"title":2409,"url":1820},"Apple Developer, Upcoming requirements",{"title":2411,"url":1943},"Apple Developer, Releases",{"title":2413,"url":1938},"Flutter docs, Migrate to UIScene life cycle",{"title":2415,"url":1869},"Play Console Help, Target API level requirements for Google Play apps",{"title":2417,"url":1893},"Android Developers, Play Billing Library deprecation FAQ",{"title":2419,"url":2116},"Android Developers, Support 16 KB page sizes",{"title":2421,"url":1968},"Android Developers, Android developer verification",{"title":2423,"url":2070},"Android Developers, Migrate from the Google Fit APIs",{"title":2425,"url":2093},"Firebase, FCM troubleshooting (InstanceId and device groups deprecation)",{"title":2427,"url":832},"Firebase, Migrate from Firebase Studio",{"title":2429,"url":854},"Firebase, Extensions FAQ and troubleshooting",{"title":2431,"url":876},"Firebase, Migrate Firebase ML model hosting to Cloud Storage",{"title":2433,"url":76},"Firebase, Test Lab",{"title":2435,"url":2019},"Supabase changelog, Tables not exposed to the Data API automatically","blog\u002Fapp-store-google-play-deadlines-2026-2027","app store deadlines 2026, google play deadlines 2026, app store requirements 2027, google play requirements 2027, target api 36 deadline, play billing library 8 deadline, 16 kb page size deadline, xcode 26 requirement, firebase shutdown dates, mobile app compliance calendar",[2439,2440,2441,2442,2443],"Most 2026 deadlines have already hit. Since April 28, 2026 iOS uploads need Xcode 26 or later, and since August 31, 2026 Google Play needs new apps and updates to target API 36 and use Play Billing Library 8.","Google lets you request an extension for both Play deadlines until November 1, 2026. That is the last date to ship an update if you are still behind.","The next hard date for Android is February 1, 2027. Google says updates that don't support 16 KB memory page sizes can't be released after that.","On iOS, apps built with Xcode 27 must use the UIScene life cycle or they fail to launch. Xcode 27 was released on September 14, 2026.","Firebase has five shutdowns between March 22 and September 30, 2027. Core services such as Firestore and Authentication are not on the list.","https:\u002F\u002Fapp369.com\u002Fblog\u002Fapp-store-google-play-deadlines-2026-2027\u002F","pPjVy1gBL6-NDA43aD3ybacEy5ko_41Of0IayJ3vHO0",[2447,2449,2453,2455,2459,2463],{"keyword":5,"url":704,"title":5,"relevance":2448},72,{"keyword":2450,"url":2451,"title":2450,"relevance":2452},"Firebase ML Model Hosting Shutting Down: How to Migrate","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirebase-ml-model-hosting-shutting-down-migrate-2027\u002F",19,{"keyword":1181,"url":1755,"title":1181,"relevance":2454},14,{"keyword":2456,"url":2457,"title":2456,"relevance":2458},"Firebase Studio Shutting Down: How to Migrate by March 2027","https:\u002F\u002Fapp369.com\u002Fblog\u002Ffirebase-studio-shutting-down-migrate-project-2027\u002F",13,{"keyword":2460,"url":2461,"title":2460,"relevance":2462},"Google Play 16 KB Page Size: Fixing Flutter and Android Apps","https:\u002F\u002Fapp369.com\u002Fblog\u002Fgoogle-play-16kb-page-size-flutter-android-2026\u002F",12,{"keyword":709,"url":1177,"title":709,"relevance":2464},11,1792379537513]