Firebase Auth:无法清除photoURL?

时间:2019-05-04 15:03:52

标签: swift firebase firebase-authentication

似乎已经清除了用户个人资料中设置的字段,这似乎是不可能的吗?例如,我的登录用户确实设置了photoURL,现在我试图通过将其设置为nil来清除它。

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.photoURL = nil
changeRequest?.commitChanges { [weak self] error in
  if let error = error {
    print(error)
    return
  }

  print("photo before reload: \(Auth.auth().currentUser!.photoURL)")

  Auth.auth().currentUser?.reload(completion: { _ in
    print("photo after reload: \(Auth.auth().currentUser!.photoURL)")
  })
}

输出:

photo before reload: nil
photo after reload: Optional(https://github.com/kevinrenskers.png)

确实,当重新启动应用程序甚至注销并重新登录时,旧的photoURL仍然存在。设置用户配置文件后,我找不到删除该属性的方法。我在这里想念什么?

1 个答案:

答案 0 :(得分:-1)

调用changeRequest.photoUrl = nil时,您只是在currentUser实例中更改值,而没有在Firebase中更改它。因此,当您重新加载实例时,它会在重新加载photoUrl的另一个实例时从Firebase读取未更改的currentUser值。

要删除photoUrl,请在commitChanges的{​​{1}}方法中将其重置