似乎已经清除了用户个人资料中设置的字段,这似乎是不可能的吗?例如,我的登录用户确实设置了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仍然存在。设置用户配置文件后,我找不到删除该属性的方法。我在这里想念什么?
答案 0 :(得分:-1)
调用changeRequest.photoUrl = nil
时,您只是在currentUser
实例中更改值,而没有在Firebase中更改它。因此,当您重新加载实例时,它会在重新加载photoUrl
的另一个实例时从Firebase读取未更改的currentUser
值。
要删除photoUrl,请在commitChanges
的{{1}}方法中将其重置