[š] Critical: Firebase Email Link Authentication dependency on Dynamic Links facing deprecation in 2025
Firebase Dynamic Links (FDL) will be deprecated on August 25, 2025, as stated in the official documentation:
- https://firebase.google.com/docs/dynamic-links
- https://firebase.google.com/support/dynamic-links-faq
Critical Impact:
The Firebase Authentication's "Sign in with Email Link" feature currently relies heavily on Firebase Dynamic Links. Specifically, the implementation requires a Firebase Dynamic Links domain in the actionCodeSettings:
const actionCodeSettings = {
// URL you want to redirect back to. The domain (www.example.com) for this
// URL must be in the authorized domains list in the Firebase Console.
url: 'https://www.example.com/finishSignUp?cartId=1234',
// This must be true.
handleCodeInApp: true,
iOS: {
bundleId: 'com.example.ios'
},
android: {
packageName: 'com.example.android',
installApp: true,
minimumVersion: '12'
},
dynamicLinkDomain: 'example.page.link'
};
Current Limitations:
- Attempting to use a custom domain (non-FDL) results in an error
- The feature doesn't work without a valid FDL domain
Questions:
- What is the migration path for Email Link Authentication after FDL deprecation?
- Will there be an alternative mechanism to handle email link authentication?
- Why isn't there a deprecation warning in the Email Link Authentication documentation?
Reference: Email Link Authentication documentation: https://firebase.google.com/docs/auth/flutter/email-link-auth
So when I use firebase_messaging: ^15.2.0 running on iOS emulator, is shows such error:
Error: The pod "Firebase/DynamicLinks" required by the plugin "firebase_dynamic_links" requires a higher minimum iOS deployment version than the plugin's reported minimum version. To build, remove the plugin "firebase_dynamic_links", or contact the plugin's developers for assistance. Error running pod install Error launching application on iPhone 16.
my Flutter version is 3.27.1
I've tried IOS version from 14 to 18 but none of them works, can this somehow be fixed or is there any alternative solution to use firebase_messaging?
cc @russellwheatley
https://firebase.google.com/docs/dynamic-links says Email Link Authentication still works after FDL is deprecated.
I'm currently using or need to use Dynamic links for email link authentication in Firebase Authentication. Will this feature continue to work after the sunset?
Yes, your email link authentication using Firebase Authentication will continue to work.
Firebase Authentication currently uses Firebase Dynamic Links to customize Authentication links, but we will provide an update that will require a client- side update to ensure that email link auth continues working after the Firebase Dynamic Links service is shut down.
Note that Firebase Authentication only depends on the Firebase Dynamic Links service internally, but does not depend on the Firebase Dynamic Links SDK.
Hey @eli1stark - The migration details are still being ironed out as far as I'm aware. I will update this thread once the migration plan has been confirmed š
It already started, this message appeared today on firebase auth section :
The following Authentication features will stop working when Firebase Dynamic Links shuts down on August 25, 2025: email link authentication for mobile apps, as well as Cordova OAuth support for web apps.
keyboard_arrow_up
To use these features after the shutdown of Dynamic Links, migrate to use an alternative solution as described in the Firebase documentation.
If you take no action, your apps and end users will be able to continue using these features until August 25, 2025.
Should we start migrating ?
I have concerns about our current migration approach, particularly our dependency on Firebase Hosting. Here's why:
-
Firebase Hosting dependency creates unnecessary coupling and could be at risk of deprecation in the future.
-
Our main requirement is just the email authentication link functionality.
-
We could potentially implement dynamic links using alternative solutions:
- Third-party services like AppsFlyer or Branch
- An in-house dynamic linking solution
-
The tight coupling with Firebase Hosting and Dynamic Links seems unnecessary for our use case.
Question: Is it possible to obtain the raw email authentication link from Firebase and integrate it with our preferred dynamic linking solution instead? We would then extract the deep link and pass it to signInWithEmailLink.
This would give us more flexibility and reduce our dependency on Firebase's ecosystem.
Maintaining separate dynamic links with a custom hosting domain is redundant and inefficient. It would require everyone to manage two separate setups: one for email authentication and another for regular deep links that will be managed by AppsFlyer/Branch or in-house solution.
@russellwheatley Is there a way to relay this message to product owners of this feature while it's not too late to change things up? Thanks!
It seems like this is now being fixed by the IOS SDK, https://github.com/firebase/firebase-ios-sdk/issues/12738
When could we start migrate away from it?
It seems like this is now being fixed by the IOS SDK, firebase/firebase-ios-sdk#12738
When could we start migrate away from it?
Same here +1
It seems like this is now being fixed by the IOS SDK, firebase/firebase-ios-sdk#12738
When could we start migrate away from it?
Indeed this is currently being worked on and we'll have an update soon for when a migration solution is available for the Flutter SDK. Please stay tuned.
Do we have JAVA equivalent for the same? For Admin Sdk, as we are generating and sending mails from our backend
Now dynamic links in firebase console can't be opened ! I even can't migrate my email link sign in, cause of firebase sendSignInLinkToEmail always depend on dynamic links.
It seems like this is now being fixed by the IOS SDK, firebase/firebase-ios-sdk#12738 When could we start migrate away from it?
Indeed this is currently being worked on and we'll have an update soon for when a migration solution is available for the Flutter SDK. Please stay tuned.
@s-chandels - Are there any timelines you're able/allowed to communicate?
I'm looking at https://firebase.google.com/docs/auth/ios/email-link-migration. The documentation is confusing and doesn't work at all. Some issues:
- Why do we need set up AASA on firebaseApp domain.
- The documentation in the link points to set up AASA on web.app domain but didn't mention firebaseApp domain
- How does it work with custom domain? Suppose, I have example.com hosted on another service (with my entire web server). Do I now need to migrate my entire service to firebase hosting?
- What is "projectConfigManager.updateProjectConfig(updateRequest)". I'm on admin sdk version 13.2.0 and didn't see the method.
Please address these issues before asking developers to migrate. At this current state, I don't think migration is possible and we should deprecate everything in August (less than half year). Otherwise, this makes me question whether Google's service is reliable and trustworthy at all, and whether we shall move everything off Firebase and Google Cloud.
Hi, I'm trying to set up email auth in a new app in Flutter but in the documentation there's wtitten this:
_Verify email link and sign in Firebase Authentication uses Firebase Dynamic Links to send the email link to a mobile device. For sign-in completion via mobile application, the application has to be configured to detect the incoming application link, parse the underlying deep link and then complete the sign-in.
Set up your app to receive Dynamic Links on Flutter in the guide._
https://firebase.google.com/docs/auth/flutter/email-link-auth#verify_email_link_and_sign_in
And now I'm stuck. I'm trying to get Dynamic Links in the app but the FirebaseDynamicLinks seems to ignore every links.
This is really confusing, but maybe I'm missing something. Thanks.
Diego
Hi, I'm trying to set up email auth in a new app in Flutter but in the documentation there's wtitten this:
_Verify email link and sign in Firebase Authentication uses Firebase Dynamic Links to send the email link to a mobile device. For sign-in completion via mobile application, the application has to be configured to detect the incoming application link, parse the underlying deep link and then complete the sign-in.
Set up your app to receive Dynamic Links on Flutter in the guide._
https://firebase.google.com/docs/auth/flutter/email-link-auth#verify_email_link_and_sign_in
And now I'm stuck. I'm trying to get Dynamic Links in the app but the FirebaseDynamicLinks seems to ignore every links.
This is really confusing, but maybe I'm missing something. Thanks.
Diego
Hi everyone,
I have a Flutter app available for both iOS and Android that uses Firebase Authentication. Currently, users can sign in with either:
Google/Gmail accounts (Android)
Apple ID (iOS)
Given recent discussions about authentication issues, Iām wondering:
Could my app be affected?
Should I implement Dynamic Links as a precaution?
Any insights would be appreciated!
It seems like this is now being fixed by the IOS SDK, firebase/firebase-ios-sdk#12738 When could we start migrate away from it?
Indeed this is currently being worked on and we'll have an update soon for when a migration solution is available for the Flutter SDK. Please stay tuned.
How soon is soon?
Not sure if folks have seen the Firebase documentation, but there is a migration guide for moving away from using Dynamic Links package here: https://firebase.google.com/support/guides/app-links-universal-links
@eli1stark - the product owners are Firebase, we're following their guidance on this. If you wish to submit a feature, it is best doing it through Firebase support.
@russellwheatley is the migration ready to use for Flutter? If so, why is this issue still open? I mean, is there anything pending or stopping us from migrating the projects?
Thanks :)
This is about "Sign in with Email Link", which uses Dynamic Links, not about Dynamic Links itself
@russellwheatley is the migration ready to use for Flutter? If so, why is this issue still open? I mean, is there anything pending or stopping us from migrating the projects?
Thanks :)
This is about "Sign in with Email Link", which uses Dynamic Links, not about Dynamic Links itself
@russellwheatley is the migration ready to use for Flutter? If so, why is this issue still open? I mean, is there anything pending or stopping us from migrating the projects? Thanks :)
@woutervanwijk yep, i am talking about the same. The actual dynamic links, I have already migrated to custom
This issue is for the sign in with email link becoming deprecated as a side effect of dynamic links ending. Not dynamic links themselves. There are published migration guides for IOS and Android specific platforms https://firebase.google.com/docs/auth/ios/email-link-migration and , https://firebase.google.com/docs/auth/android/email-link-migration but there has been no update for flutter in the documentation.
Yes, that's what I asked for. The migration guides are dedicatedly available for Android and iOS. Is there any specific plans for Flutter migration guide or should we follow the Android iOS migration guides separately?
Yes, that's what I asked for. The migration guides are dedicatedly available for Android and iOS. Is there any specific plans for Flutter migration guide or should we follow the Android iOS migration guides separately?
Per this reply here https://github.com/firebase/flutterfire/issues/16946#issuecomment-2655685114 there will be a change for the flutter SDK. I am not sure exactly how the ios/android specific implementations would fit into a flutter project and it seems the flutterfire team is working on a replacement for what we already use.
@russellwheatley any updates on this? The deprecation date is getting closer
@woutervanwijk - all the information needed to migrate away from Dynamic Links is contained within the documentation: https://github.com/firebase/flutterfire/issues/16946#issuecomment-2809239512
Most of the work requires setting up Firebase Hosting to handle App Link / Universal Link + configuring your iOS/Android code to receive deep links.
As part of the migration, FlutterFire has exposed the linkDomain property on ActionCodeSettings which has already been released: https://github.com/firebase/flutterfire/blob/main/packages/firebase_auth/firebase_auth_platform_interface/lib/src/action_code_settings.dart#L62
Whilst dynamicLinkDomain has been deprecated: https://github.com/firebase/flutterfire/blob/main/packages/firebase_auth/firebase_auth_platform_interface/lib/src/action_code_settings.dart#L50
thanks. I changed everything, but in the email, the verification-url is still using the old page.link address. Is that correct?
@woutervanwijk - all the information needed to migrate away from Dynamic Links is contained within the documentation: #16946 (comment)
Most of the work requires setting up Firebase Hosting to handle App Link / Universal Link + configuring your iOS/Android code to receive deep links.
As part of the migration, FlutterFire has exposed the
linkDomainproperty onActionCodeSettingswhich has already been released: https://github.com/firebase/flutterfire/blob/main/packages/firebase_auth/firebase_auth_platform_interface/lib/src/action_code_settings.dart#L62Whilst
dynamicLinkDomainhas been deprecated: https://github.com/firebase/flutterfire/blob/main/packages/firebase_auth/firebase_auth_platform_interface/lib/src/action_code_settings.dart#L50
I see the migration guide, but it seems to be written for if we are using dynamic links directly. It seems that the specific issue this thread is pertaining to is the passwordless signin using signInWithEmailLink().
https://firebase.google.com/docs/auth/ios/email-link-migration https://firebase.google.com/docs/auth/android/email-link-migration
I think we were hoping for a solution for flutter rather than platform-specific setups.
For example, the fluttere Email Link Authentication documentation still says to use dynamicLinkDomain https://firebase.google.com/docs/auth/flutter/email-link-auth
while the ios and android specify to use linkDomain. https://firebase.google.com/docs/auth/android/email-link-auth
I have followed these migration guides for my Flutter app:
https://firebase.google.com/docs/auth/ios/email-link-migration https://firebase.google.com/docs/auth/android/email-link-migration
I only skipped executing projectConfigManager.updateProjectConfig(updateRequest). I have published the updated app without dynamic links and sign in with email works normally.
So only remaining question is that why and when should I run that projectConfigManager.updateProjectConfig(updateRequest). The related documentation is very unclear.
I have followed these migration guides for my Flutter app:
https://firebase.google.com/docs/auth/ios/email-link-migration https://firebase.google.com/docs/auth/android/email-link-migration
I only skipped executing
projectConfigManager.updateProjectConfig(updateRequest). I have published the updated app without dynamic links and sign in with email works normally.So only remaining question is that why and when should I run that
projectConfigManager.updateProjectConfig(updateRequest). The related documentation is very unclear.
Yes you should do that, otherwise Firebase Auth will still generate dynamic links