Я пытался получить логическое значение из Firestore, чтобы иметь возможность контролировать состояние моего приложения. Например, если извлеченное значение имеет значение true (ie 1), представление должно действовать в одном направлении, а если оно имеет значение false (ie 0), оно должно действовать другим образом.
Однако иногда это не удается и работает другие, поэтому я не смог решить эту проблему сам! Ниже приведен мой код, который я вызвал в viewWillAppear () (я надеюсь, что это правильно, так как я хочу, чтобы он принимался каждый раз, когда появляется мое представление.
func getStatus() {
let db = Firestore.firestore()
let docRef = db.collection("collection").document("doc")
docRef.addSnapshotListener { (doc, e55) in
guard let doc = doc, doc.exists else {
return
}
guard let instruction = doc.get("new") else {
return
}
if instruction as? Bool == true {
UIView.animate(withDuration: 3, animations: {
self.button.alpha = 0
})
} else if instruction as? Bool == false {
self.view.backgroundColor = .black
}
}
}
Эта функция вызывается в viewWillAppear (). Однако иногда случаются оба события: ie, кнопка исчезает, а backGround становится черным.
[Пожалуйста, дайте мне знать, если этот вопрос не разрешен или мне нужно сделать дополнительные разъяснения:)]