Swift Firebase身份验证链接错误-用户只能链接到给定提供程序的一个标识

Swift Firebase身份验证链接错误-用户只能链接到给定提供程序的一个标识,swift,firebase,firebase-authentication,Swift,Firebase,Firebase Authentication,当用户第一次运行我的应用程序时,它会为他们创建一个匿名帐户,如果他们决定使用更高级别的功能,该帐户将转换为一个经过电子邮件验证的帐户 anon登录的代码非常简单(直接取自文档) 注册时,我会用电子邮件凭据创建一个新帐户,并像这样链接到匿名帐户 Auth.auth().createUser(withEmail: email, password: password) { (user, err) in if (err != nil) { print("Error registe

当用户第一次运行我的应用程序时,它会为他们创建一个匿名帐户,如果他们决定使用更高级别的功能,该帐户将转换为一个经过电子邮件验证的帐户

anon登录的代码非常简单(直接取自文档)

注册时,我会用电子邮件凭据创建一个新帐户,并像这样链接到匿名帐户

Auth.auth().createUser(withEmail: email, password: password) { (user, err) in
    if (err != nil) {
        print("Error registering \(String(describing: err!.localizedDescription))")
    } else {
        let credential = EmailAuthProvider.credential(withEmail: email, password: password)
        Auth.auth().currentUser!.link(with: credential, completion: {(user, err) in
            if (err != nil) {
                // Error
            } else {
                // Linked
            }
        })
    })
问题是每次我得到“用户只能链接到给定提供者的一个身份”

我根本没有在Firebase注册的账户


帐户、匿名和电子邮件身份验证已成功创建,但无法链接

您无法链接2个现有Firebase用户。您只能将新凭据链接到现有用户。
注册用户时,应使用电子邮件/密码凭据对匿名用户执行
currentUser.linkWithCredential
,而无需先调用createUser。这基本上是将匿名用户升级为电子邮件/密码用户。

链接自4.x.x版以来已被删除。这已在参考中更新,但需要修复文档。您应该改用
linkWithCredential
。谢谢,我已经修好了。
Auth.auth().createUser(withEmail: email, password: password) { (user, err) in
    if (err != nil) {
        print("Error registering \(String(describing: err!.localizedDescription))")
    } else {
        let credential = EmailAuthProvider.credential(withEmail: email, password: password)
        Auth.auth().currentUser!.link(with: credential, completion: {(user, err) in
            if (err != nil) {
                // Error
            } else {
                // Linked
            }
        })
    })