我正在使用3种方法实现登录页面:电子邮件,Facebook和Linkedin。由于Linkedin不是Firebase中的默认提供程序,因此我需要使用“ signInWithCustomToken”方法。一切都很好。
当我先在Linkedin上创建一个帐户,然后尝试使用使用相同电子邮件的另一种方法进行注册时,就会出现问题:
error.code == 'auth/account-exists-with-different-credential'
我做了研究并找到了方法:
firebase.auth().fetchSignInMethodsForEmail(email)
该方法应该返回用户可以使用的可用方法的列表,因此我可以显示一条消息:
"This email address was registered using Linkedin"
最大的问题是,仅当fetchSignInMethodsForEmail是默认提供程序时才有效:Facebook,Twitter等,但不适用于自定义提供程序。我的猜测是,由于没有“可用”提供程序方法,因此不会返回任何内容。
是否可以设置提供者数据? setProvider方法?也许甚至在身份验证仪表板上显示一个图标?或以某种方式使它工作?
我当时正在考虑创建一个文档,可以在其中将属性“ provider”设置为LinkedIn,Facebook等,但这是我目前的最后选择。
在此先感谢您的帮助。