Наблюдение заинглсинг имеет задержку при представлении данных, которые он получает из базы данных на экране. Есть ли способ исправить это? - PullRequest
0 голосов
/ 24 января 2019

applySingleEvent имеет задержку при представлении и извлечении данных из базы данных.Есть ли способ это исправить?Я использую эту функцию для обновления текста метки.

func getthename() {
    var n : String = ""
    var ln : String = ""
    let ud = (Auth.auth().currentUser?.uid)
    self.ref = Database.database().reference()
    self.ref.child("Users").child(ud!).observeSingleEvent(of: .value, with: {[weak self] (snapshot) in

        if let getData = snapshot.value as? [String:Any] {
            n  = (getData["Name"] as? String)!
            ln = (getData["lastName"] as? String)!
            self?.name.text = "\(n) \(ln)"
        }
    })

}

1 Ответ

0 голосов
/ 24 января 2019

Данные должны быть загружены с сервера Firebase, что занимает определенное время в зависимости от:

  • количество данных, которые вы загружаете
  • пропускная способность соединения, на котором вы находитесь
  • задержка - время, необходимое для отправки любых данных между вашим клиентом и серверами Firebase

Из этих трех объем загружаемых данных, как правило, легче всего контролировать, и зачастую это самый большой фактор, влияющий на производительность, когда вы показываете полный список данных. Простой пример: если вы показываете список имен пользователей, это будет быстрее, если вам нужно только загружать пользователя names из базы данных, а не загружать целые профили пользователей. Чтобы ускорить этот сценарий, вы можете сохранить /usernames в дополнение к /users.

Пропускная способность и задержка зависят от вашего соединения. Так что единственный способ улучшить это - получить большее или более быстрое соединение.

При первом подключении клиента к серверу базы данных ему необходимо установить это подключение. Это может занять некоторое время и зависит только от вашей пропускной способности и задержки.

Ни одним из них нельзя управлять через API Firebase. Нет никакого волшебного API «сделай это быстрее», поскольку это означало бы, что мы сначала сделали все возможное, чтобы сделать его медленнее.

Если вы хотите получить представление о том, что делает клиент Firebase, вы можете включить ведение журнала отладки и изучить выходные данные отладки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...