Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Firebase身份验证链接提供商Google登录问题?_Ios_Swift_Firebase_Firebase Authentication - Fatal编程技术网

Ios Firebase身份验证链接提供商Google登录问题?

Ios Firebase身份验证链接提供商Google登录问题?,ios,swift,firebase,firebase-authentication,Ios,Swift,Firebase,Firebase Authentication,在第一次使用Gmail和密码注册时,firebase正确保存了凭据。但下一次,我使用注册时提供的相同Gmail使用Firebase Google身份验证登录,Firebase帐户中的凭据将被覆盖。重写凭据后,我们无法使用该注册凭据登录。谁能解释一下如何做到这一点 您是否验证了第一次登录时的电子邮件或电话号码?如果不是,这是设计的: 登录完成后,任何以前未经验证的登录机制都将从用户中删除,并且任何现有会话都将无效。例如,如果以前有人使用相同的电子邮件和密码创建了未验证的帐户,则用户的密码将被删除

在第一次使用Gmail和密码注册时,firebase正确保存了凭据。但下一次,我使用注册时提供的相同Gmail使用Firebase Google身份验证登录,Firebase帐户中的凭据将被覆盖。重写凭据后,我们无法使用该注册凭据登录。谁能解释一下如何做到这一点


您是否验证了第一次登录时的电子邮件或电话号码?如果不是,这是设计的:

登录完成后,任何以前未经验证的登录机制都将从用户中删除,并且任何现有会话都将无效。例如,如果以前有人使用相同的电子邮件和密码创建了未验证的帐户,则用户的密码将被删除,以防止声称拥有所有权并创建该未验证帐户的冒名顶替者使用未验证的电子邮件和密码再次登录

发生了什么事 在第一个屏幕截图中,您与Firebase的电子邮件+密码提供商登录。虽然这是一种有效的登录方法,但这意味着任何人都可以输入该电子邮件地址,即使他们实际上无法访问该gmail地址的Google帐户

这里没有安全风险,但是我们对电子邮件地址的信任度很低。因此,帐户的
emailVerified
属性被标记为
false
,您通常需要用户在允许他们继续之前验证他们的电子邮件地址


在第二个屏幕截图中,用户使用相同的电子邮件地址登录,但现在使用的是Firebase的
google.com
提供商。这意味着谷歌现在已经验证了该用户可以访问该账户的基本gmail地址。由于
google.com
提供商是
@gmail.com
帐户的可信提供商,因此系统将替换以前的帐户


另见:

你能做什么
您通常希望阻止多个用户使用相同的电子邮件地址注册。为此,您需要将Firebase配置为在控制台中每个电子邮件地址只允许一个帐户,然后合并场景中的两个(电子邮件+密码和google.com)帐户。

转到登录方法->高级选项您将找到此选项->每个电子邮件地址一个帐户。单击更改->选择第一个选项(防止创建具有相同电子邮件地址的多个帐户)