【发布时间】:2019-02-28 03:45:51
【问题描述】:
所以我有一个使用 Firebase 的 iOS 应用程序,最初以匿名方式登录用户,然后允许他们稍后添加一个电子邮件地址,该地址通过以下调用链接到 Firebase 用户:
Auth.auth().currentUser?.linkAndRetrieveData(with: credential)
这一切都很好,但我现在遇到了无法更新该用户的电子邮件的问题。我认为这可以通过简单地向新电子邮件发送另一个电子邮件链接,然后使用新凭据调用 linkAndRetrieveData 来实现。
然而,这给了我一个 FIRAuthErrorCodeProviderAlreadyLinked 错误,因为用户已经有一个电子邮件地址。我原以为它会覆盖现有的电子邮件。然后我尝试/考虑了解决方案:
取消链接电子邮件提供商,然后使用新凭据重新链接。首先,这似乎是不可能的,因为电子邮件链接身份验证用户的“providerId”是“Firebase”,当我将其输入 unlink 时,它会失败。其次,这很容易出现错误,因为您可以成功取消链接第一封电子邮件,然后让新电子邮件的链接失败。
使用提供的“updateEmail”方法 - 这不起作用,因为它假定电子邮件/密码身份验证,而我正在使用电子邮件链接身份验证。即使这确实有效,也意味着有一封未经验证的电子邮件。
所以我想知道如何做到这一点,或者实际上是否有可能根本不支持。我不敢相信这不会得到支持,因为这似乎是一个非常常见的问题,并且基本上使电子邮件链接身份验证无法启动。
【问题讨论】:
标签: ios firebase firebase-authentication