ProfileChangeRequest上的Firebase commitChangesWithCompletion不会触发

我从Firebase参考中获取确切的代码,将其放在方法中,然后执行完成处理程序(也不是函数)。 有谁知道为什么?

let user = FIRAuth.auth()?.currentUser if let user = user { let changeRequest = user.profileChangeRequest() changeRequest.displayName = "Jane Q. User" changeRequest.photoURL = NSURL(string: "https://example.com/jane-q-user/profile.jpg") changeRequest.commitChangesWithCompletion { error in if let error = error { // An error happened. } else { // Profile updated. } } } 

它可能没有用,因为您尝试打印用户名或在完成块完成之前显示它。 您可以在适当的时候调度到完成块内的主线程以进行segue。 这就是发生在我身上的事情,所以只是我的猜测。

您可能想要提供更多上下文。 你什么时候打电话这个function? 这个代码块放在什么类型的函数中?

这个function的位置非常重要。 确保无论您拥有此代码块,程序实际上都会进入该部分代码。

有时人们意识到文档function不起作用,因为它们从未被调用过。 我建议您多阅读Firebase的文档 ,确保您了解如何使用这些function。