angular - Firebase 用户在登录时合并身份验证提供程序

标签 angular firebase firebase-authentication firebase-security

在我的 Angular 2 应用程序中,我希望允许用户通过电子邮件/密码、Google 和 Facebook 提供商进行连接。

第一次登录时,我知道 Firebase 数据库中创建了一个用户条目。例如facebook:UUID。如果用户使用其他提供商登录,我知道 firebase 将阻止此操作,特别是如果电子邮件已被使用并且已在规则中设置为唯一。

所以我的问题是:如果我们检测到电子邮件相同,我们如何才能自动合并数据,对用户透明

在 udemy 或其他大公司这样的优秀网站上,我们可以使用多种方法进行身份验证。我尝试使用 Facebook 和 Google(均使用同一电子邮件)登录,它们会自动将我重定向到我的唯一个人资料,而无需我采取任何操作来确认我要将我的帐户与其他提供商链接。

如何在 Firebase 中实现这一目标? 我们是否必须复制数据并进行我们自己的“用户数据收集”?

最佳答案

当用户登录 Firebase 身份验证时,Firebase 数据库中不会自动创建任何条目。如果您的应用程序创建了此类条目,您就有可以为您完成此操作的代码。这很常见,但不是自动的。

如果您希望允许用户通过任何受支持的提供商登录到同一帐户,则您需要帐户链接。它记录在这里:https://firebase.google.com/docs/auth/web/account-linking

关于angular - Firebase 用户在登录时合并身份验证提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40922092/

相关文章:

android - Firebase 电子邮件验证无法正常工作

javascript - Firebase Polymer 从存储中删除文件

swift - Firebasedata 不填充 tableView

java - 在聊天应用程序中获取上次上线时间

firebase - 403 调用者没有 Firebase 管理 API addFirebase 的权限

javascript - 如何创建 Firebase Web user.reauthenticate() 方法所需的 “credential” 对象?

javascript - 如何根据object id和div id显示按钮

Angular Material 分页器无法处理异步数据

javascript - 在 Typescript 中迭代数组/JSON 以构建带有子菜单的 Angular 2 模板菜单

css - 元素的可填充宽度