Swift:Firebase Facebook身份验证凭据在会话中更改,无法持久保存

时间:2020-05-01 21:03:33

标签: swift firebase authentication firebase-authentication credentials

在同一会话中,用户的凭据似乎已更改,因此我无法重新认证或删除Firebase Facebook用户。我收到错误消息:The supplied credentials do not correspond to the previously signed in user.

所以我设置了一些打印语句来显示我的问题。创建凭证时(当我的用户使用Facebook登录时)打印凭证,大约5分钟后在尝试重新认证时将其打印出来,然后出于测试目的删除该用户。

我尝试使用UserDeafults保留此凭据,但是我相信它的格式无法保留。

这也是我设置用户并删除用户的代码:

用户设置

 if let accessToken = AccessToken.current {
  let credential = FacebookAuthProvider.credential(withAccessToken: accessToken.tokenString)
  print("*CREDENTIAL: ", credential)

  Auth.auth().signIn(with: credential) { (authResult, error) in
    if let error = error {
      ...
    }
  }
}

打印出来(我已经隐藏了令牌的一部分,但您可以看到它以13开头):

Text] ([![enter image description here] 1

尝试重新验证后删除用户的部分代码:

let user = Auth.auth().currentUser
if let accessToken = AccessToken.current {
  let credential = FacebookAuthProvider.credential(withAccessToken: accessToken.tokenString)
  print("*CREDENTIAL: ", credential)

  user!.reauthenticate(with: credential, completion: { (result, error) in
  if let err = error {
    // GETTING ERROR HERE : The supplied credentials do not correspond to the previously signed in user 
  } 
  else {
    ...
    user!.delete { error in
      ...
    }

这会打印出以下凭据(已更改,现在以14开始)

Text]([![enter image description here] 2

请指导我哪里出错了,或者提供某种方式使我可以保持该值不变,或者以某种方式将其存储在某个位置,以便以后调用它并删除使用它的用户。

谢谢!

0 个答案:

没有答案