好的,这是我得到的错误:
1-当应用程序以phone1启动时,用户匿名登录。 Uid:ABC(link1)
2- phone1用户决定使用Google登录登录。用户已经拥有Uid:ABC,因此用户可以从匿名帐户转换为具有Google登录功能的永久帐户。 (link2)
3-使用phone2,该应用程序首次启动并以匿名方式登录。 Uid:ZYX(link1)
4-使用phone2,用户想要使用相同的Google帐户登录。所以此时使用linkWithCredential cause" ERROR_CREDENTIAL_ALREADY_IN_USE"。 (link2)
那么这个问题的正确解决方案是什么?
答案 0 :(得分:6)
您正在尝试 链接 具有相同Auth凭据的两个UID ,即使用相同的Google帐户。这本身就是主要的安全漏洞,而且在生产应用程序中永远不应该做。
根据firebase官方文档
尝试链接用户时,ERROR_CREDENTIAL_ALREADY_IN_USE AuthCredential对应于另一个帐户已在使用中
你应该尝试简单地登录,它会起作用。您的当前操作等同于注册。
请参阅these文档,了解正确的Google登录实施情况。为您的上述程序工作。 您首先必须删除以前的用户,以便链接到Gmail帐户的旧UID被删除。
如果此信息可以帮助您,请告诉我。