← Blog

Firebase Dynamic Links Shut Down — Migrate to Flinku in 5 Minutes

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.

FeatureFirebase (deprecated)Flinku
Deferred deep linking
iOS Universal Links
Android App Links
Custom domains
Password protected links
Scheduled links
Link health monitor
Geo routing
No MAU pricing
PriceFree (deprecated)Free → $12/mo

Step 1 — Create Your Flinku Project

  1. Sign up at app.flinku.dev — free, no credit card
  2. Click "New Project"
  3. Enter your app name, Bundle ID (iOS), and Package Name (Android)
  4. Your project subdomain is ready: yourapp.flku.dev

Step 2 — Migrate Your Existing Links

Use our Firebase Migration Tool at app.flinku.dev/migrate:

  1. Export your Firebase Dynamic Links from the Firebase Console
  2. Paste them into the migration tool
  3. Select your Flinku project
  4. 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 our 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 →

Frequently Asked Questions

Will my old Firebase Dynamic Links still work? No. Firebase shut down FDL on August 25, 2025. All existing links have stopped working.

Do I need to release a new app version? Yes — you need to update the SDK in your app and release an update.

Is Flinku free? Yes — Flinku has a free plan with 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.