A Firebase Dynamic Links
alternative that does one job.
Google shut Dynamic Links down on 25 August 2025 and shipped no first-party replacement. If all you needed was a link that survives the install, this is that piece — without buying an attribution suite to get it.
FDL did four things. Three are now standard.
Dynamic Links bundled short links, social preview metadata, direct opens, and deferred opens. Universal Links and App Links cover direct opens natively, and any link shortener covers the first two. The deferred case is the one with no built-in answer — and the reason people are still searching for a replacement.
Solved by the platforms
Universal Links and App Links open your app directly from an https URL. We host the association files for your link domain so this keeps working, but you no longer need a service for it.
The actual gap
The store install throws the URL away. Without something parking the payload at click time and handing it back on first launch, your invite, referral or shared content lands on a cold home screen.
Not an attribution suite
Branch and AppsFlyer solve the gap inside products built for ad attribution, priced and scoped accordingly. If you only ever used the deferred link, that is a large amount of surface to adopt.
Every FDL parameter has somewhere to go.
| Firebase Dynamic Links | uselinking |
|---|---|
example.page.link domain | Your own link subdomain, e.g. acme.lnk.uselinking.com, with the AASA and assetlinks files served for you. |
link | deepPath plus params, stored server-side and frozen at click time rather than encoded in the URL. |
apn, ibi, isi | App configuration: Android package, iOS bundle identifier and App Store ID, set once per app instead of on every link. |
ofl, afl, ifl | fallbackUrl, per app with a per-link override. Desktop and unsupported browsers go straight there. |
getDynamicLink() | getInitialLink(), or the useDeferredLink() hook. Same shape, plus a confidence label. |
MatchType.Unique / .Weak | unique and weak — the same idea, and the same advice: do not do anything irreversible on a weak match. |
st, sd, si (social preview) | Link title drives the preview card served to link scanners. Not a full social-metadata editor. |
Creating a link, before and after.
https://example.page.link/?link=https%3A%2F%2Fexample.com%2Finvite%2F9fb2
&apn=com.example.app
&ibi=com.example.app
&isi=1234567890
&ofl=https%3A%2F%2Fexample.com%2Fget-the-appPOST /d/apps/:appId/links
{
"deepPath": "/invite/9fb2",
"params": { "it": "ey…" },
"fallbackUrl": "https://example.com/get-the-app"
}
→ https://acme.lnk.uselinking.com/Ab3xYz9kimport dynamicLinks from '@react-native-firebase/dynamic-links'
const link = await dynamicLinks().getInitialLink()
if (link?.url) navigate(parse(link.url))import { getInitialLink } from '@uselinking/react-native'
const link = await getInitialLink()
if (link) navigate(link.path, link.params) // link.matchType tells you how sure we areWhat works less well than FDL did.
Firebase Dynamic Links felt more reliable on iOS than it should have, and it is worth knowing why before you assume a like-for-like replacement.
FDL wrote the link to the iOS pasteboard from its interstitial page and read it back on first launch. That is deterministic, and it is why matches felt exact. iOS 14 added a paste banner and iOS 16 turned it into a permission prompt, so the trick now shows your users a “paste from Safari?” dialog on launch. We do not use it, and we do not intend to: it was a large part of why the product deteriorated before Google retired it.
What that means concretely: on iOS, matching is probabilistic, typically 70–90%, and answers none rather than guessing when candidates are ambiguous. Android is unaffected — the Play Install Referrer carries the payload through the install exactly, the same mechanism FDL used there.
Common questions about the shutdown.
When did Firebase Dynamic Links shut down?
Google deprecated Firebase Dynamic Links in 2023 and shut the service down on 25 August 2025. Existing page.link URLs stopped resolving, and Google did not ship a first-party replacement — the migration guide points at Universal Links, App Links, and third-party services.
What is the closest replacement for Firebase Dynamic Links?
For the deferred case — a link tapped without the app installed that must still open the right screen after install — you need a service that parks the link at click time and hands it back on first launch. uselinking does exactly that, and nothing else. Branch and AppsFlyer also do it, bundled inside much larger attribution products.
Does deferred deep linking still work on iOS in 2026?
Yes, but probabilistically. The App Store passes nothing through an install, and the pasteboard trick Firebase Dynamic Links relied on now triggers an iOS paste-permission prompt. Matching is inferred from IP, OS version, device class and locale inside a short window, which lands around 70–90% in practice. Android is exact, because the Play Install Referrer carries the payload through the install.
Do I have to rebuild my app to migrate?
Yes. The associated-domains entitlement on iOS and the App Links intent filter on Android are native configuration, so they need a new build — an OTA update will not pick them up. The Expo config plugin writes both for you.
Migrate in an afternoon.
Create an app, re-create your links, swap the SDK call, rebuild. The migration section of the docs has the exact steps.