Обнаружение состояния соединения, вызываемого дважды - PullRequest
0 голосов
/ 05 июля 2018
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
   if snapshot.value as? Bool ?? false {
      print("Connected")
   } else {
      print("Not connected")
   }
})

Я использую это для определения моего состояния соединения с моей базой данных. Моя проблема в том, что когда они подключены к Интернету, результат отображается как «Не подключен», а затем «Подключен» Когда у них нет подключения к интернету, он просто переходит непосредственно к «Не подключен». Может кто-нибудь объяснить, пожалуйста?

1 Ответ

0 голосов
/ 05 июля 2018

То, что вы видите, - это ожидаемое поведение.

Флаг .info/connected определяет, подключено ли приложение / клиент к базе данных Firebase Database. Хотя это, конечно, требует наличия подключения к Интернету, это еще не все. Вот почему .info/connected может быть false, даже если у вас есть работающее подключение к Интернету.

Это особенно верно, когда вы запускаете приложение. После запуска приложения требуется несколько секунд, прежде чем клиент Firebase подключится к серверу базы данных, поэтому обычно значение .info/connected начинается с false, а затем становится true. Иногда он даже несколько раз переключается перед установкой.

Также см .:

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