Firebase Registration - хранение дополнительных данных в БД блокирует слушателя - PullRequest
0 голосов
/ 17 января 2020

При регистрации в 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 не обновляется, и мой пользовательский интерфейс зависит от этой переменной.

Большое спасибо!

...