Implementation of Dynamic Links (Firebase) in Mobile Application
Firebase Dynamic Links are smart links that direct user to right place in app regardless of whether it's installed. If installed — opens specific screen. If not — goes to App Store or Google Play, then after install delivers original deep link. Scenarios: content sharing, referral programs, email campaigns with context.
Important: Google officially announced deprecation of Firebase Dynamic Links on August 25, 2025. If you're starting project only now — consider alternatives: Branch.io, Adjust, AppsFlyer or custom implementation via App Links + Universal Links + deferred deep linking. If Dynamic Links already used — need migration.
How it worked and how to migrate
Dynamic Links mechanics built on three components: Universal Links (iOS), App Links (Android) and Firebase server redirect. On link transition https://yourapp.page.link/promo Firebase determined platform, app presence and redirected.
On iOS required apple-app-site-association configuration and Associated Domains entitlement. On Android — intent-filter with autoVerify="true" and correct assetlinks.json on domain.
Problem most often encountered: after app update Dynamic Links stopped working on Android — because keyHash of signature changed, and assetlinks.json wasn't updated. Or new applicationId for debug variant was added, not listed in Firebase Console.
Migration to Branch.io (most functional alternative):
// Android: Branch initialization
Branch.getAutoInstance(this)
// Handling in Activity
Branch.sessionBuilder(this).withCallback { referringParams, error ->
referringParams?.getString("+clicked_branch_link")?.let {
// navigate to right screen
}
}.withData(this.intent.data).init()
Migration to custom implementation — App Links + Universal Links with deferred parameters via own server — cheaper in SDK costs, more expensive in development.
What we do
If Dynamic Links still needed — integrate, test all three scenarios (app installed / not installed / update). If project new or migration needed — design alternative solution per your requirements, including parameter delivery after install.
Testing Dynamic Links requires physical devices — simulators don't support some scenarios correctly.
Timeline: 2–4 days including domain setup, testing all scenarios and backend documentation.







