【发布时间】:2020-06-28 03:06:41
【问题描述】:
我正在试验 Flutter、Dart 和 FirebaseAuth。我已经能够使用 Google 登录成功登录,但是当我尝试使用 Facebook 登录时,我被告知“已存在具有相同电子邮件地址但登录凭据不同的帐户。登录使用与此电子邮件地址关联的提供商。"
这是因为 firebase auth 将一切都基于用户的电子邮件,而我已经使用 Google 登录。因此,它不允许使用 Facebook 登录。
在我几年前做的一些代码中,我刚刚获得了用户并使用.lineWithCredential(facebookAuthCred) 来完成与 Firebase 中已建立的 Google 帐户的链接。但是对于 Dart 实现,这不起作用,因为 FirebaseAuth.instance.currentUser() 返回一个 null。从.signInWithCredential(facebookAuthCred) 返回的错误文档告诉我要执行.fetchSignInMethodForEmail(...),除非没有登录我没有电子邮件地址可以传递给它。
所以我处于这种情况。如果用户重新启动应用并选择 Facebook 而不是 Google,如果我没有 FirebaseUser 或电子邮件地址,我该如何链接帐户?
到目前为止,我在网上看到的唯一一件事是人们说您必须先让用户使用他们的 Google 帐户登录,但是登录 Google 只是为了然后登录 Facebook 是一种非常糟糕的 UI 体验。
我正在努力解决这个问题。
【问题讨论】:
标签: flutter dart firebase-authentication