FirebaseDynamicLinks.instance.getInitialLink()在Android设备上始终返回null

时间:2019-11-28 04:45:27

标签: flutter firebase-authentication firebase-dynamic-links

我正在将 firebase_dynamic_links 用于具有Firebase的无密码登录,并且 getInitialLink()始终返回 null 版本0.5.0 + 8 。 如果我使用版本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

  

医生摘要(要查看所有详细信息,请运行flutter doctor -v):[√]

     

Flutter(频道稳定,v1.9.1 + hotfix.6,在Microsoft Windows上   [版本10.0.17763.864],语言环境pt-BR)

     

[√] Android工具链-为Android设备开发(Android SDK版本28.0.3)

     

[√] Android Studio(3.5版)

     

[!] VS代码(1.40.0版)X未安装Flutter扩展;从https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter

安装      

[√]已连接设备(1个可用)

     

!医生发现了1类问题。

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

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

"script-src 'self'"