Flutter FireBaseDynamicLink.instance.getInitialLink()在Android上始终返回null

Flutter FireBaseDynamicLink.instance.getInitialLink()在Android上始终返回null,flutter,firebase-authentication,firebase-dynamic-links,Flutter,Firebase Authentication,Firebase Dynamic Links,我使用firebase_dynamic_链接进行firebase的无密码登录,并且getInitialLink在版本0.5.0+8上总是返回null。 如果我使用版本0.4.0+4和retrieveDynamicLink而不是getInitialLink,它就可以正常工作 由于它在版本0.4.0+4中工作,我假设问题不在Firebase设置上。 以下是我发送电子邮件的方式: final FirebaseAuth user = FirebaseAuth.instance; try {

我使用firebase_dynamic_链接进行firebase的无密码登录,并且getInitialLink在版本0.5.0+8上总是返回null。 如果我使用版本0.4.0+4和retrieveDynamicLink而不是getInitialLink,它就可以正常工作

由于它在版本0.4.0+4中工作,我假设问题不在Firebase设置上。 以下是我发送电子邮件的方式:

final FirebaseAuth user = FirebaseAuth.instance;
    try {
      user.sendSignInWithEmailLink(
          email: _email,
          androidInstallIfNotAvailable: true,
          iOSBundleID: "com.mydomain.myappname",
          androidMinimumVersion: "16",
          androidPackageName: "com.mydomain.myappname",
          url: "https://myAppName.page.link/fJc4",
          handleCodeInApp: true);
    } catch (e) {
      _showDialog(e.toString());
      return false;
    }
然后检索它:

@override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    if (state == AppLifecycleState.resumed) {
      _retrieveDynamicLink();
    }
  }

  Future<void> _retrieveDynamicLink() async {
    final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
    print('data == ' + data.toString());

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

    if (deepLink != null) {
      _link = deepLink.toString();
      _signInWithEmailAndLink();
    }
    return deepLink.toString();
  }
使用getInitialLink的新版本上的数据始终为空。它适用于具有retrieveDynamicLink的早期版本

我创建了一个新项目只是为了测试它,但问题仍然存在。除了视图文件之外,我对项目所做的唯一其他更改是将firebase_auth:^0.15.0+1添加到pubspc.yaml

医生摘要要查看所有详细信息,请运行颤振医生-v:[√]

颤振通道稳定,v1.9.1+修补程序.6,在Microsoft Windows上 [版本10.0.17763.864],区域设置pt BR

[√] Android工具链-为Android设备开发Android SDKversion 28.0.3

[√] Android Studio 3.5版

[!]VS代码版本1.40.0 X颤振扩展未安装;从安装

[√] 已连接的设备1可用

!医生在1个类别中发现问题


非常感谢您的帮助。

getInitialLink仅在通过动态链接打开时有效。请参阅插件文档,而不是在应用程序处于活动状态或处于后台时。为此,您需要调用onLink

  void initDynamicLinks() async {
    final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
    final Uri deepLink = data?.link;    if (deepLink != null) {
      Navigator.pushNamed(context, deepLink.path);
    }

    FirebaseDynamicLinks.instance.onLink(
      onSuccess: (PendingDynamicLinkData dynamicLink) async {
        final Uri deepLink = dynamicLink?.link;

        if (deepLink != null) {
          Navigator.pushNamed(context, deepLink.path);
        }
      },
      onError: (OnLinkErrorException e) async {
        print('onLinkError');
        print(e.message);
      }
    );
  }

getInitialLink仅在通过动态链接打开(请参阅插件文档)时有效,而不是在应用程序处于活动状态或处于后台时。为此,您需要调用onLink

  void initDynamicLinks() async {
    final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
    final Uri deepLink = data?.link;    if (deepLink != null) {
      Navigator.pushNamed(context, deepLink.path);
    }

    FirebaseDynamicLinks.instance.onLink(
      onSuccess: (PendingDynamicLinkData dynamicLink) async {
        final Uri deepLink = dynamicLink?.link;

        if (deepLink != null) {
          Navigator.pushNamed(context, deepLink.path);
        }
      },
      onError: (OnLinkErrorException e) async {
        print('onLinkError');
        print(e.message);
      }
    );
  }

你找到解决办法了吗?@BenjaminSmith没有。他们也没有回答。我只是使用0.4.0+4版本,一切正常。检查这个答案,可能会有帮助。这对我有用:你找到解决办法了吗?@BenjaminSmith没有。他们也没有回答。我只是使用0.4.0+4版本,一切正常。检查这个回答,这可能会有帮助。这对我很有用: