我正在努力使用“联合”提供商(例如Google,Facebook等)将Firebase身份验证添加到网络应用中。
我立即发现默认设置的限制,“每个电子邮件地址一个帐户”。例如,拥有Google和Facebook相同电子邮件的用户只能使用其中一个,而不能同时使用这两个。
solution警告我:“如果您允许使用相同电子邮件地址的多个帐户,则您应用的登录流程不能依赖电子邮件地址来识别用户帐户。”
我无法弄清楚这是否是我需要担心的事情。替代方案似乎是非常类似意大利面条的代码,用于搜索第二个提供商的凭据,然后将其填入第一个提供商的凭证中。
答案 0 :(得分:2)
允许用户使用Facebook或Google帐户使用相同的电子邮件地址登录是一项称为account linking的强大功能。
如果您发现将帐户关联(或与登录相关的其他流程)工作变得棘手,我建议您使用FirebaseUI,web,iOS和{{3}为你调味并处理这些流程。
答案 1 :(得分:0)
我发现了一个棘手的问题。
Firebase有两种模式:
allow multiple accounts per email:TRUE
-启用此功能,您就可以使用Facebook和Gmail登录,但是它们不会向您发送用户的电子邮件,它们只会发送gmail.uid和facebook.uid,无法知道它们之间的关系
allow multiple accounts per email:FALSE
-firebase向您发送电子邮件信息,但是如果您使用google登录,则无法使用facebook登录(因为facebook是“不受信任的提供者”)-那么为什么还要显示该按钮?