Blog›Product
Product

After the Firebase Dynamic Links shutdown: what transfers, what doesn't, and the cutover order

page.link is gone; a custom domain you owned can be reused. What survives the Firebase Dynamic Links shutdown, and the cutover order that avoids an outage.

AAAhsan AliWrites about deep linking & attributionSep 27, 2026·4 min read
Diagram: after Firebase Dynamic Links, your domain and existing paths move over, and the cutover is mapped, tested and switched.

Firebase Dynamic Links shut down on 25 August 2025. Firebase's FAQ is blunt about the result: every link returns an HTTP 404, whether it was served from a page.link subdomain or a custom domain you owned. If your app still ships the Firebase Dynamic Links SDK, its handlers are waiting for links that will never resolve.

Most teams have dealt with the obvious part: stop creating links, pick a replacement, swap the SDK. The harder questions are what to do with the domain you used, the links already out in old emails and printed material, and the reporting that used to flow through Firebase.

“page.link subdomains are gone permanently. Custom domains you controlled can be reused with a new provider, but Firebase's link data doesn't come with them. Old links on those domains can be recovered if you know what they pointed to. Firebase's reporting history is gone.”

What transfers and what doesn't?

ItemStatusNotes
page.link subdomainsGone permanentlyGoogle-owned and decommissioned; they can't be repointed.
Custom domains you ownedReusableThe DNS is yours — point it at your new provider.
Link destinationsMust be recreatedFirebase stored them; its domain and link metadata was marked for deletion at shutdown.
Deep link and deferred routingMust be rebuiltYour new provider and SDK handle this.
Firebase link analyticsNot recoverableThe analytics API stopped working at shutdown.
iOS Associated DomainsUpdate if the domain changesKeep the entry if you reuse the same domain.
Android intent filtersUpdate if the host changesKeep the host if you reuse the same domain.

What reusing your custom domain actually means

If you served links from go.yourapp.com, you can point that domain at a new provider — it's yours. What you can't get back are the short links Firebase generated on it, because the mapping from each path to its destination lived in Firebase.

What you can recover: any link where you know both the path and where it pointed. Recreate it with the same path, and once DNS points at the new provider, the old URL works again — including on printed QR codes and in old emails.

What you can't: links you have no record of. If the mapping wasn't exported before the shutdown and isn't in your code, your email templates or your marketing files, those specific links stay dead.

What order should the cutover happen in?

Order matters. Switching DNS before the app can handle the new setup — or removing the SDK before the new one is live — creates a window where links open the browser or land nowhere.

Step 1: Ship an app update for the new setup

Before touching DNS, release an app build that handles links through your new provider's SDK. If you're reusing the same custom domain, the Associated Domains entry and Android intent filter for that host stay as they are — what changes is who serves the association files for it. If you're moving to a new domain, add it:

// iOS — Signing & Capabilities → Associated Domains
applinks:go.yourapp.com        // keep, if you're reusing the domain
applinks:yourapp.linktrail.io  // add, if you're moving to a new link domain
<!-- Android — AndroidManifest.xml -->
<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="https" android:host="go.yourapp.com" />
</intent-filter>

Give the update time to reach most of your active users — a forced update, or a grace period of a week or two — before you change anything else.

Step 2: Recreate your links

Before DNS moves, recreate every link you know about, using the same paths so old URLs resolve the moment the domain switches. Start with the links people are still tapping:

  • Links in live email campaigns and push templates
  • Links in your App Store and Play Store listings
  • QR codes on packaging, posters and other printed material
  • Referral and invite links with active users

Step 3: Point DNS at the new provider

With the app update out and links recreated, change the DNS record for your custom domain to the one your new provider gives you, and remove any old Firebase Hosting records for that hostname. On LinkTrail, add the domain under Domains in the dashboard and point its DNS as instructed there; custom domains are a Growth-plan feature, and LinkTrail then generates and hosts the apple-app-site-association and assetlinks.json files for it. DNS changes usually take effect within minutes, occasionally longer.

Step 4: Remove the Firebase Dynamic Links SDK

  • iOS: remove FirebaseDynamicLinks from your Swift Package or Podfile, and delete the handleUniversalLink and dynamicLink(fromCustomSchemeURL:) calls.
  • Android: remove the firebase-dynamic-links dependency from Gradle, and delete the getDynamicLink(intent) calls.
  • React Native: uninstall @react-native-firebase/dynamic-links, and delete the getInitialLink() and onLink() calls.
  • Flutter: remove firebase_dynamic_links, and delete the getInitialLink() and onLink listeners.
“App update first, links second, DNS third, SDK removal last. Reversing any of those steps opens a window where links resolve to a setup the installed app can't handle.”

Then verify

Once DNS has switched, check the association files your domain now serves with the Universal Links validator, and tap a few recreated links on a clean install on each platform. The DNS change itself is quick; the inventory and the verification are where the time goes.

For the SDK swap on each platform and a parameter-by-parameter mapping, see the Firebase Dynamic Links migration guide in the docs, and the migration overview for what the shutdown removed.

AA

Ahsan Ali

Writes about deep linking & attribution

Ahsan Ali works with the teams integrating LinkTrail's iOS, Android, React Native, and Flutter SDKs, which is where most of what he writes here starts: deferred deep linking, install attribution after ATT, and the parts of the mobile growth stack the category tends to leave vague.

Tagged#Firebase Dynamic Links#Migration#Custom domains

Questions about this post

Can I reuse my Firebase Dynamic Links custom domain?

Yes. The domain is yours, so you can point its DNS at a new provider. What you can't recover are the short-link mappings Firebase stored; recreate each link with the same path so old URLs resolve again.

What happened to page.link links?

They belonged to Google and stopped working when the service shut down on 25 August 2025 — every link now returns HTTP 404. They can't be moved; update every surface you still control.

In what order should I migrate off Firebase Dynamic Links?

Ship an app update that handles links on the new setup first, recreate your links second, switch DNS third, and remove the Firebase Dynamic Links SDK last. Reversing any step creates a window where links resolve to a setup the installed app can't handle.