gpt4 book ai didi

firebase - SwiftUI firebase - 更改用户的显示名称 - 如何立即刷新 View

转载 作者:行者123 更新时间:2023-12-05 07:13:05 25 4
gpt4 key购买 nike

我使用 swiftui 创建了一个基本的 firebase 登录应用程序(使用本教程:https://www.youtube.com/watch?v=FhLEwqyVSjE)。一切正常。

在我的 ContentView.swift 中,我添加了一个 TextField 来更改用户的显示名称。为此,我使用以下逻辑在 SessionStore.swift 中添加了一个 changeDisplayName 函数:

let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
changeRequest?.displayName = displayName
changeRequest?.commitChanges { (error) in
// ...
}

该函数由我的 ContentView 中的按钮调用。更改 displayName 也有效,但我的 ContentView 仍然保留旧的 displayName 直到我重新启动应用程序,因为只有这样 ContentView 才会再次调用 session.listen() 并从 SessionStore 获取新的 displayName。

为了解决这个问题,每当我的 ContentView 调用 SessionStore 中的 changeDisplayName 函数时,我都会调用 session.unbind() 然后在我的 ContentView 中调用 session.listen()并且不返回错误。这有效,每次更改时我的 ContentView 都会重新加载新的 displayName。

这是好的做法还是我缺少解决此问题的更简洁的解决方案?

最佳答案

也许尝试使用 Auth.auth().currentUser?.reload()。这可能行不通,因为我过去在使用 isEmailVerified 时遇到过麻烦,但我想这值得一试!

关于firebase - SwiftUI firebase - 更改用户的显示名称 - 如何立即刷新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60248476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com