Skip to main content
Deep links require a Pro plan subscription or higher.
This guide walks you through replacing Firebase Dynamic Links with Dub for deep link creation, click tracking, and routing across platforms.

Prerequisites

Before you begin, make sure to follow the quickstart guide to set up deep links on Dub by completing the following steps:
  1. Configure your deep link domain on Dub. This replaces Firebase’s *.page.link domain with your own branded deep link domain.
  2. Create your deep links on Dub.
  3. Handle deep link redirects inside your app (more details below).

Migrating Android apps

1

Remove Firebase Dynamic Links SDK

If you have the Firebase Dynamic Links SDK installed, remove it from your build.gradle file:
Remove any Firebase imports from your Kotlin/Java files:
2

Update AndroidManifest.xml

If you’re using the same domain for both Firebase Dynamic Links and Dub (e.g., yourapp.com), no changes are needed — you can skip this section.However, if you were previously using Firebase’s branded domain (e.g., yourapp.page.link), you’ll need to replace it with your custom Dub domain in your app’s configuration.
3

Implement Deep Link Handling

Override onNewIntent in your main activity to handle deep link opens:
In a nutshell, this code:
  • Extracts the domain and key from the deep link URL
  • Sends the data to the /track/open endpoint
  • Retrieves the final destination URL
  • Navigates to the destination URL in the app

Migrating iOS apps

1

Remove Firebase Dynamic Links SDK

If you have the Firebase Dynamic Links SDK installed, remove it from your Podfile:
Remove any Firebase imports like:
2

Update Associated Domains

If you’re using the same domain for both Firebase Dynamic Links and Dub (e.g., yourapp.com), no changes are needed — you can skip this section.However, if you were using Firebase’s branded domain (e.g., yourapp.page.link), you’ll need to replace it with your Dub domain in your iOS project setup.To enable Universal Links with Dub, update your Associated Domains in Xcode:
  1. Open your Xcode project.
  2. Select your app target → Signing & Capabilities
  3. Under Associated Domains, replace the old Firebase domain with your Dub domain:
If your app uses other SDKs that handle URLs (e.g., Facebook/Meta SDK, Google Sign-In), make sure your AppDelegate’s openURL handler doesn’t short-circuit with ||. When a third-party SDK returns true first, Dub’s handleDubDeepLink will never be called. See the troubleshooting guide for details and a fix.
No changes to your app’s Info.plist are required unless you had other Firebase-specific deep link configurations.
In a nutshell, this code:
  • Sends the deep link URL to the /track/open endpoint
  • Retrieves the final destination URL
  • Navigates to the destination URL in the app