This is my code

Future<bool> sendSignInWithEmailLink(email) async {
  final FirebaseAuth user = FirebaseAuth.instance;
  _email = email;

//  try {
//    user.sendSignInWithEmailLink(
//        email: email,
//        androidInstallIfNotAvailable: true,
//        iOSBundleID: kName, //constant
//        androidMinimumVersion: "16",
//        androidPackageName: kName, //constant
//        url: kLink, //constant
//        handleCodeInApp: true);
  try {
    user.sendSignInLinkToEmail(
      email: _email,
      actionCodeSettings: ActionCodeSettings(
          url: appEmail + _email,
          iOS: {"bundleId": kName},
          android: {
            "packageName": kName,
            "installApp": true,
            "minimumVersion": '12'
          },
          handleCodeInApp: true,
          dynamicLinkDomain: kLink),
    );
  } catch (e) {
    return false;
  }
  print(email + "<< sent");
  return true;
}

Future<void> getInitialLink() async {
  final PendingDynamicLinkData data =
      await FirebaseDynamicLinks.instance.getInitialLink();

  final Uri deepLink = data?.link;
  print(deepLink.toString());

  if (deepLink.toString() != null) {
    _link = deepLink.toString();
    _signInWithEmailAndLink();
  }
}

Future<void> _signInWithEmailAndLink() async {
  final FirebaseAuth user = FirebaseAuth.instance;
  bool validLink = await user.isSignInWithEmailLink(_link);
  if (validLink) {
    try {
      await user.signInWithEmailLink(email: _email, emailLink: _link);
    } catch (e) {
      print(e);
    }
  }
}

Before the update commented ( sendSignInWithEmailLink ) code would work fine. But after the update it no longer works and I tried using sendSignInLinkToEmail but could not make it work.

How can I make it to work again.


Solution 1: Jet.B.Pope

You need to check out the FlutterFire webpage. They have a migration page that goes over how to update your methods and objects to accommodate the new version. https://firebase.flutter.dev/docs/migration/


Solution 2: tibimate87

Worked for me:

            FirebaseAuth.instance.sendSignInLinkToEmail(
              email: "[email protected]",
              actionCodeSettings: ActionCodeSettings(
                url: "https://example.web.app",
                android: {
                  'packageName': "com.example.example",
                  'installApp': true,
                  'minimumVersion': '12'
                },
                iOS: {
                  'bundleId': "com.example.example",
                },
                handleCodeInApp: true,
              ),
            );