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 athttps://api.ulink.ly.
Prerequisites
- Create a project — sign in at https://ulink.ly → Dashboard → Projects → New Project.
- Verify a domain — use the shared
.shared.lydomain or connect a custom host under Project → Domains. Custom domains rely on the TXT/A/CNAME guidance that points tocustom-domains.ulink.ly. - Configure platforms — in Project → Configuration set iOS bundle ID, Android package name + SHA, deep-link schemes, and store fallbacks.
- Generate an API key — under Project → API Keys for automation scripts or mobile SDK bootstrapping.
- 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 Links | ULink Deep Linking |
|---|---|
| Deprecated product | Actively developed, roadmap visible in Dashboard → Projects |
| One link type | dynamic and unified links per project |
| Manual domain hosting | Instant shared .shared.ly subdomains + custom domains with DNS verification UI |
| Manual AASA / assetlinks files | Generated automatically per verified domain |
| Basic click counts | Dashboard analytics + /sdk endpoints capture clicks, installs, sessions, UTM tags, geo/device data |
| Legacy SDKs | Native Android/iOS SDKs plus a Flutter bridge (flutter_ulink_sdk) |
Migration workflow
- Audit Firebase inventory — keep only active slugs.
- Decide on link types — marketing links become
unified, deep links becomedynamic. - Recreate links — use Links → Create Link or
POST /sdk/linkswith the payloads shown in the API automation guide. - Update apps — follow the platform guides:
- QA — confirm routing via
GET /sdk/resolve?url=..., run device tests from Troubleshoot → Testing Deep Links, and watch Links → Analytics for live traffic. - 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/bootstrapis 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.