Skip to main content

Why migrate to ULink

Firebase Dynamic Links (FDL) is in maintenance mode. ULink delivers the same cross-platform routing plus verified domains, automatic /.well-known file hosting, SDK telemetry, and dashboard analytics. This migration track shows how to move every FDL surface—backend automations, Android, iOS, and Flutter apps—onto ULink.

The steps below reference live UI sections in the dashboard (Projects → Domains, Configuration, Links, Analytics) and the /sdk/* endpoints that ship in production today at https://api.ulink.ly.


Prerequisites

  1. Create a project — sign in at https://ulink.lyDashboard → Projects → New Project.
  2. Verify a domain — use the shared .shared.ly domain or connect a custom host under Project → Domains. Custom domains rely on the TXT/A/CNAME guidance that points to custom-domains.ulink.ly.
  3. Configure platforms — in Project → Configuration set iOS bundle ID, Android package name + SHA, deep-link schemes, and store fallbacks.
  4. Generate an API key — under Project → API Keys for automation scripts or mobile SDK bootstrapping.
  5. Inventory Firebase links — export the slugs, destinations, UTM tags, and metadata you still rely on so you can recreate only what matters.

The Android, iOS, Flutter, and API migration pages assume these prerequisites are complete so they can focus purely on SDK/back-end changes without repeating the same setup steps.


Feature parity snapshot

Firebase Dynamic LinksULink Deep Linking
Deprecated productActively developed, roadmap visible in Dashboard → Projects
One link typedynamic and unified links per project
Manual domain hostingInstant shared .shared.ly subdomains + custom domains with DNS verification UI
Manual AASA / assetlinks filesGenerated automatically per verified domain
Basic click countsDashboard analytics + /sdk endpoints capture clicks, installs, sessions, UTM tags, geo/device data
Legacy SDKsNative Android/iOS SDKs plus a Flutter bridge (flutter_ulink_sdk)

Migration workflow

  1. Audit Firebase inventory — keep only active slugs.
  2. Decide on link types — marketing links become unified, deep links become dynamic.
  3. Recreate links — use Links → Create Link or POST /sdk/links with the payloads shown in the API automation guide.
  4. Update apps — follow the platform guides:
  5. QA — confirm routing via GET /sdk/resolve?url=..., run device tests from Troubleshoot → Testing Deep Links, and watch Links → Analytics for live traffic.
  6. Cut over — swap public URLs, monitor analytics, and decommission Firebase once traffic stabilizes.

Cutover checklist

  • Every active slug exists inside Links with correct per-platform destinations.
  • At least one verified domain (shared or custom) matches the URLs about to ship.
  • /sdk/bootstrap is integrated so installations + sessions populate usage metrics.
  • Marketing/support/docs teams updated public URLs to the ULink versions.
  • Alerting uses ULink analytics or exports to watch for click drops post-migration.

When you are ready to go deeper, open the platform-specific guides linked above. They describe how to remove Firebase SDK calls and replace them with the corresponding ULink SDK APIs.