Swift,FirebaseAuth:取消链接提供程序user.providerData后仍包含providerID

时间:2019-01-30 23:16:45

标签: ios swift firebase firebase-authentication

运行所需的方法以断开密码提供程序的链接后,当我使用user.providerData查询密码提供程序时,该密码提供程序仍会出现。 FirebaseAuth-Console注册表明密码提供程序已取消链接,如果再次运行unlink方法,也会收到相应的错误:“用户未与给定提供程序链接到帐户。”

对Facebook或google登录执行相同操作不会出现问题。仅当我取消链接其他密码登录名时,才会发生该错误。

仅当我注销并再次登录后,查询才正确。

所有其他更改将立即/正确显示。 Google链接/取消链接,facbeook取消链接/链接。即使密码链接方法立即注册在user.providerData中,也只有unlink方法没有立即注册。

有什么想法吗?


流量:

1。查询提供商ID

1.2。结果-> user.providerData = facebook.com,密码

2。执行取消链接的“密码”提供程序方法(运行无错误)

3。再次查询提供商ID

3.1。 ❌结果-> user.providerData = facebook.com,密码


查询方法:

if let user = Auth.auth().currentUser {
    for profile in user.providerData {

    // Id of the provider
    print(profile.providerID)
    }
} else {
    // No user is signed in.
}

取消链接方法:

Auth.auth().currentUser?.unlink(fromProvider: "password", completion: { (user, error) in
   if let error = error {
      print(error)
   } else {
      print("successfully unlinked eMail & password login")
   }
})

1 个答案:

答案 0 :(得分:0)

Google已向我确认这是当前错误。

他们告诉我他们正在处理此问题,并将在下一个版本中提供,但无法提供任何详细信息或确切的时间表。