【发布时间】:2020-03-23 16:47:22
【问题描述】:
我使用 firebase_dynamic_links 进行 passwordless login 与 firebase 并且 getInitialLink() 总是返回 null 版本 0.5.0+8。 如果我使用 version 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() 的新版本中的数据始终为 null。它适用于具有 retrieveDynamicLink() 的先前版本。
我创建了一个新项目只是为了对其进行测试,但问题仍然存在。除了视图文件之外,我对该项目所做的唯一其他更改是将 firebase_auth: ^0.15.0+1 添加到 pubspc.yaml
医生总结(要查看所有详细信息,请运行 flutter doctor -v):[√]
Flutter(Channel stable,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 Code(版本 1.40.0)X Flutter 扩展未安装;从https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter安装
[√] 已连接设备(1 个可用)
!医生发现了 1 个类别的问题。
感谢任何帮助。
【问题讨论】:
-
你找到解决办法了吗?
-
@BenjaminSmith 不。他们也没有回答。我只是使用 0.4.0+4 版本,一切正常。
-
检查这个答案,它可能会有所帮助。这对我有用:stackoverflow.com/a/67904367/6661043
标签: flutter firebase-authentication firebase-dynamic-links