首页 > 解决方案 > Firebase 注册 - 在 DB 中存储其他数据会阻止侦听器

问题描述

在 Firebase 注册时,我将其他数据存储在实时数据库中。问题是 AuthListener 不知何故停止工作。这意味着用户必须重新启动应用程序。

这是我的代码

session.signUp(email: email, password: password) { (authData, error) in
    session.createUser()
}

.createUser 将一个对象添加到我的实时数据库中。那部分效果很好。

下面的这部分会产生问题

func listen() {
        _ = Auth.auth().addStateDidChangeListener { (auth, user) in
            if let user = user {
                self.ref = Database.database().reference(withPath: "\(String(describing: Auth.auth().currentUser?.uid ?? "Error"))")

                self.ref.child("user").observe(DataEventType.value) { (snapshot) in
                    self.user = MyModel(snapshot: snapshot)
                }

看起来self.user没有刷新,我的 UI 依赖于这个变量。

非常感谢!

标签: swiftfirebasefirebase-realtime-databaseswiftui

解决方案


推荐阅读