On August 25, 2025, Google officially shut down Firebase Dynamic Links (FDL). If your app still relies on FDL infrastructure, your deep links are broken. This guide shows you how to migrate to Flinku in under 5 minutes.
What Was Firebase Dynamic Links?
Firebase Dynamic Links allowed developers to create smart URLs that:
- Opened specific screens inside your mobile app
- Routed users to the App Store or Play Store if the app wasn't installed
- Remembered the original link after install (deferred deep linking)
- Worked across iOS, Android, and web
Why Flinku?
Flinku was built specifically as a Firebase Dynamic Links replacement. It does everything FDL did — and more.
| Feature | Firebase (deprecated) | Flinku |
|---|---|---|
| Deferred deep linking | ✅ | ✅ |
| iOS Universal Links | ✅ | ✅ |
| Android App Links | ✅ | ✅ |
| Password protected links | ❌ | ✅ |
| Scheduled links | ❌ | ✅ |
| Link health monitor | ❌ | ✅ |
| Geo routing | ❌ | ✅ |
| No MAU pricing | ❌ | ✅ |
| Price | Free (deprecated) | Free → $12/mo |
Step 1 — Create Your Flinku Project
- Sign up at app.flinku.dev — free, no credit card
- Click "New Project"
- Enter your app name, Bundle ID (iOS), and Package Name (Android)
- Your project subdomain is ready:
yourapp.flku.dev
Step 2 — Migrate Your Existing Links
Use our Firebase Migration Tool at app.flinku.dev/migrate:
- Export your Firebase Dynamic Links from the Firebase Console
- Paste them into the migration tool
- Select your Flinku project
- Click "Convert All Links" — done
Step 3 — Update Your App SDK
Flutter
Remove firebase_dynamic_links from pubspec.yaml and add:
dependencies:
flinku_sdk: ^0.3.0
Replace your Firebase code:
// Before (Firebase)
final dynamicLinks = FirebaseDynamicLinks.instance;
final linkData = await dynamicLinks.getInitialLink();
if (linkData != null) {
navigateTo(linkData.link.path);
}
// After (Flinku)
final flinku = Flinku(
userId: user.uid,
baseUrl: 'https://yourapp.flku.dev',
);
final link = await flinku.match();
if (link != null) {
navigateTo(link.deepLink, params: link.params);
}
iOS (Swift)
// Before (Firebase)
DynamicLinks.dynamicLinks().handleUniversalLink(url) { dynamicLink, error in
guard let dynamicLink = dynamicLink else { return }
handleDeepLink(dynamicLink.url)
}
// After (Flinku)
flinku.match { link in
guard let link = link else { return }
self.handleDeepLink(link.deepLink, params: link.params)
}
Android (Kotlin)
// Before (Firebase)
Firebase.dynamicLinks.getDynamicLink(intent)
.addOnSuccessListener { pendingDynamicLinkData ->
val deepLink = pendingDynamicLinkData?.link
navigateTo(deepLink)
}
// After (Flinku)
flinku.match { link ->
link?.let { navigateTo(it.deepLink, it.params) }
}
React Native
npm install flinku-react-native
import { Flinku } from 'flinku-react-native';
const flinku = new Flinku({
userId: 'firebase-user-uid',
baseUrl: 'https://yourapp.flku.dev',
});
const link = await flinku.match();
if (link) {
navigateTo(link.deepLink, link.params);
}
Step 4 — Test Your Links
Use the free Deep Link Tester to verify everything is working before releasing your app update.
That's It
Migration typically takes less than 5 minutes. Start migrating for free →
FAQ
Will my old Firebase Dynamic Links still work?
No. Firebase shut down FDL on August 25, 2025.
Do I need to release a new app version?
Yes — you need to update the SDK and release an update.
Is Flinku free?
Yes — free plan includes 10 links and 1k clicks/month. Paid plans start at $12/month with no MAU pricing.
How long does migration take?
Most apps complete migration in under 5 minutes using our migration tool.
Top comments (0)