Skip to content
Documentation menu

Migrate

Migrating from Firebase Dynamic Links

Recreate your Firebase Dynamic Links in DL2App: what each parameter becomes, what cannot be brought back, and how to swap the SDK.

Firebase Dynamic Links has been shut down. This guide recreates your links’ behaviour in DL2App and replaces the SDK calls in your app.

How the import works

  1. Open your project, then Links, then Import, and pick the source.
  2. Give it your links (how depends on the source, below).
  3. Review. Every row says what will be created, and rows with problems say why. Nothing is created until you confirm, and existing links are never overwritten: a slug that is already used is either skipped or given a suffix, your choice.
  4. Import. Rejected rows can be downloaded as a CSV to fix and retry.

Imported links go through the same destination checks as links you create by hand, and count towards new-account limits.

Firebase has no export, so for this source you paste your long Dynamic Links, one per line (the form https://example.page.link/?link=…&apn=…). If you only have short links, expand them from your own records; they no longer resolve.

What each parameter becomes

ParameterMeaningIn DL2App
linkThe deep link your app opensApp path (its path) and link data (its query). Also the desktop and fallback URL when it is https.
oflWhere desktop visitors goDesktop URL
aflAndroid, app not installedAndroid URL (custom URL)
ifliPhone, app not installediOS URL (custom URL)
ipfliPad, app not installedUsed as the iOS URL when ifl is missing
st, sd, siSocial title, description, imageSocial preview title, description and image URL
utm_source, utm_medium, utm_campaign, utm_term, utm_contentCampaign tagsCampaign tags
apn, amvAndroid package and minimum versionSet once for the project under Apps, not per link
ibi, ipbi, isi, ius, imviOS bundle, App Store ID, URL scheme, minimum versionSet once for the project under Apps, not per link
efrSkip the preview pageNot needed; DL2App has no forced preview page
at, ct, mt, ptApp Store Connect campaign tokensNot carried over
gclidGoogle Ads click IDNot carried over

In your app

  1. Enter your iOS and Android app details once under Apps; they replace the per-link apn, ibi and isi parameters.
  2. Add the DL2App hosts to your associated domains and intent filters, next to or instead of the page.link ones.
  3. Replace the Firebase calls: where you handled getInitialLink / onLink (or handleUniversalLink on iOS), register one DL2.onLink listener. It receives direct links and the deferred link after an install. See your platform’s setup page.
  4. Your app used to receive the full link URL. It now receives its path and its query as data, so https://example.com/invite?code=42 arrives as path /invite with { code: "42" }.

Differences to expect

  • There is no forced preview page, so nothing replaces efr=1.
  • Deferred deep linking on iOS has documented limits. Firebase had the same constraints; it did not publish them.
  • Links tapped inside social apps get a hand-off page.
Migrating from Firebase Dynamic Links · Docs · DL2App