2017-09-09 32 views
1

當用戶第一次運行我的應用程序時,它會爲他們創建一個匿名帳戶,如果他們決定使用更高級別的功能,則會將其轉換爲電子郵件驗證帳戶Firebase身份驗證鏈接錯誤 - 用戶只能鏈接到給定提供商的一個身份

代碼匿名登錄的簡單(直接取自文檔)

// No user is signed in. 
Auth.auth().signInAnonymously() { (usr, err) in 
    if (err == nil) { 
     print("Anon User ID \(usr!.uid)") 
    } else { 
     print("Anon auth error \(String(describing: err!.localizedDescription))") 
    } 
} 

登記時,我創建電子郵件證書,並鏈接到匿名帳戶的新帳戶,像這樣

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 
      } 
     }) 
    }) 

問題是每一次我得到了「用戶只能鏈接到一個身份給定的提供」

,我已經註冊了火力地堡沒有賬戶在所有

賬戶,匿名和電子郵件身份驗證是已成功創建,但無法鏈接

回答

1

您無法鏈接2個現有的Firebase用戶。您只能將新憑證鏈接到現有用戶。 當您註冊用戶時,您應該只使用電子郵件/密碼憑證的匿名用戶currentUser.link withCredential,而不必先調用createUser。這基本上是將匿名用戶升級爲電子郵件/密碼用戶。

相關問題