在Firebase中为用户设置displayName时,更改将在commitChangesWithCompletion块中设置,但不在外部。有谁知道发生了什么以及如何将displayName设置在外面?
代码在Swift中,看起来像这样:
func updateDisplayName(user: FIRUser?) {
let changeRequest = user!.profileChangeRequest()
changeRequest.displayName = userName // userName is Gandalf
changeRequest.commitChangesWithCompletion(){ (error) in
if let error = error {
print(error.localizedDescription)
return
}
print("userName inside commit: \(user?.displayName)")
}
print("userName outside commit: \(user?.displayName)")
}
当我运行代码时,首先调用第二个打印。 1. userName outside commit:nil 2.提交内的userName:可选(" Gandalf")
当我稍后查看我的代码以查看是否存在延迟问题时,displayName保持为