代码之家  ›  专栏  ›  技术社区  ›  ediheld

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

  •  0
  • ediheld  · 技术社区  · 6 年前

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

    在我看来。我添加了一个文本字段来更改用户的显示名称。为此,我在SessionStore中添加了一个changeDisplayName func。斯威夫特有这样的逻辑:

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

    func由我的ContentView中的一个按钮调用。更改显示名也可以,但在我重新启动应用程序之前,我的ContentView仍保留旧的显示名,因为只有在那时ContentView才会调用 session.listen() 并从SessionStore获取新的displayName。

    为了解决这个问题,我打电话 session.unbind() 然后 一场听着 在我的ContentView中,每当我的ContentView调用会话存储中的changeDisplayName func且不返回错误时。这是可行的,每次更改我的ContentView时,它都会重新加载新的显示名。

    这是一个良好的做法,还是我错过了一个更干净的解决方案?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Dharman vijay    5 年前

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