这里我尝试使用 Firebase 实现 Google、Facebook 和 Twitter 登录。
我遇到过很多我不清楚的场景。
每个单独的登录都正常工作,我在这里没有发现任何问题。
我的要求是当用户第一次使用 xxxxx@gmail.com 登录某个提供商(Google、Facebook、Twitter)并成功后,用户退出。在第二次登录时,用户使用与其他一些提供相同的 ID xxxxx@gmail.com 而不是以前使用的 ID,那时我们不应该允许登录过程。用户下次需要使用同一提供商登录。
以下是我发现的案例,
第一次使用 xxxxx@gmail.com 使用谷歌登录时,成功弹出后我注销了。我第二次尝试使用 Facebook 或 Twitter 使用相同的 ID xxxxx@gmail.com 登录,但它抛出错误“一个帐户已存在,具有相同的电子邮件地址但登录凭据不同”。
第一次使用 xxxxx@gmail.com 使用 twitter 或 Facebook 登录时,成功弹出后我注销了。我第二次尝试使用 google 使用相同的 ID xxxxx@gmail.com 登录。它没有显示任何异常。在这里我需要通知用户“xxxxx@gmail.com 与 twitter 或 Facebook 关联,使用相同的提供商登录”
我不知道第二种情况发生了什么。
对于这个 ID xxxxx@gmail,我有 google、Facebook 和 twitter 帐户。
我正在开发Android应用程序,它在Facebook,Google和Email/Password等firebase的帮助下使用多重身份验证.每种身份验证都以不同的方式运行.
但是,当我使用谷歌登录然后退出并稍后当我使用Facebook通过使用相同的电子邮件ID登录时...
它说.
com.google.firebase.auth.FirebaseAuthUserCollisionException:已存在具有相同电子邮件地址但登录凭据不同的帐户.使用与此电子邮件地址关联的提供商登录.
我想要做的就是,当用户尝试使用相同的电子邮件ID登录不同的身份验证提供程序时合并帐户.
有没有办法通过使用firebase来处理这个问题.
请帮忙.
在Firebase项目中为每个电子邮件地址启用一个帐户进行Firebase 身份验证时,似乎有一些适用于身份验证过程的附加规则。不同的提供者似乎分为两类,受信任的和不受信任的提供者。如果用户在任何时候通过受信任的提供商登录,则该用户之前登录的所有不受信任的提供商都会从帐户中删除。此外,永远不会允许用户再次登录不受信任的提供商。提供商是否可信似乎取决于由提供商创建的新帐户是否仅通过向创建新帐户的地址发送验证电子邮件来验证该帐户。
我似乎找不到关于哪些提供商可信和不可信的完整列表。通过将解决方案实施到我的应用程序中,我发现了以下内容:
值得信赖的供应商:
不受信任的供应商:
这种理解是否正确?我在哪里可以找到其他提供商的细分?我的应用程序是在Unity 中构建的,因此我将仅限于Firebase在 Unity 中支持的提供程序。为什么Microsoft在不同情况下既是受信任的提供商,又是不受信任的提供商?我真的可以在这里使用一些帮助。
我的应用程序适用于iOS和Android。我想专门使用Apple和Google登录,但iOS < 13上的用户无法使用Apple登录。这些iOS设备似乎约占西方国家所有设备的六分之一。我尝试实现Google和Microsoft登录以更好地覆盖这些用户,但后来我遇到了Microsoft的复杂问题登录受信任和不受信任。我不想通过手动帐户合并使我的应用程序过于复杂,但我不知道完全信任哪些其他提供商。保持简单愚蠢的最佳解决方案是什么?
我已经有使用电子邮件和密码注册的用户。
当用户注销,然后使用具有相同电子邮件地址的google登录时,通过身份验证使用相同的userId登录成功,但电子邮件密码身份验证消失了(信封图标消失了)。有点被替换了
我的登录应用程序有 3 个按钮:
假设我有用户 A 已经注册: email: AwesomeA@gmail.com pass: somepassword
然后用户 A 由于某种原因退出,然后使用 Google 再次登录,但使用相同的电子邮件 (awesomeA@gmail.com)
在Console Auth中,userId A与以前相同,但firebase Auth中的图标仅显示google,电子邮件密码Auth的图标消失了
注意:为什么我使用电子邮件密码作为主要身份验证?因为我的应用程序包含付款信息。因此,如果设备被盗,我想使用 firebase 重新身份验证系统确保其安全。所以只要小偷不知道密码,他就无法使用虚拟钱包购买任何东西
firebase firebase-security firebase-authentication firebaseui