当前位置: 首页 > 知识库问答 >
问题:

使用电子邮件链接不起作用的颤振火库身份验证

朱昊乾
2023-03-14

我遵循本指南,我有以下代码:

var acs = ActionCodeSettings(
  url: 'https://example.com/auth/widget',
  androidPackageName: 'com.example',
  iOSBundleId: 'com.example',
  handleCodeInApp: true,
  androidInstallApp: true,
  androidMinimumVersion: '12',
);

var emailAuth = 'john.doe@pm.me';
FirebaseAuth.instance
    .sendSignInLinkToEmail(
        email: emailAuth, actionCodeSettings: acs)
    .catchError((onError, stackTrace) {})
    .then((value) =>
        print('Successfully sent email verification'));

发送电子邮件可以正常工作,但是当我单击电子邮件时,然后...

  • 在iOS它打开https://example.com/auth/widget-这是后备
  • 在Android中,它显示一个循环加载器大约1秒,然后它“倒下”,什么也没发生

传入链接处理程序

FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) {
    print('got dynamic link! $dynamicLinkData');
}).onError((error) {
    print('error error!');
});

我在 Firebase 中将动态链接配置为指向 to.example.com。我还添加了一个手动动态链接 to.example.com/test 打开我的应用程序显示动态链接!消息) - 所以一切似乎都很好,问题似乎在于链接生成。

我通过电子邮件得到的链接结构是:

<代码>https://to.example.com/?link=https://example-abcd.firebaseapp.com/__/auth/action?apiKey…继续URL(&C)=https://example.com/auth/widget&lang=en

共有1个答案

丁淇
2023-03-14

经过几个小时痛苦的调试和阅读文档后,我终于找到了答案。大部分内容都在flutter文档中,但由于文档已经断开了链接,而且到处都是,所以我很难理解所有内容!

我需要将Android最小版本从12降低到1。然后我的应用程序打开,我可以收到动态链接。不知道为什么。我的Android模拟器是Android版本13,但应用程序从未打开。

在降低android版本之前,我还在firebase中设置了sha256设置,使用了本答案中记录的< code > grad Lew signing report 。虽然不确定这是必需的。

我忘记了在iOS上接收链接部分记录的所有步骤,即:

    < li >将动态链接域添加到关联的域中 < li >将firebasedynamiclickscustomdomains添加到Info.plist中

总的来说,作为Flutter初学者,我发现让这个功能正常工作对我来说真的很难。但是我想我可以重复使用很多设置,因为动态链接功能似乎在未来会派上用场。

 类似资料: