Я получаю данные из базы данных и после этого удаляю наблюдателя. Но если данные получат изменения в этом месте, блок все равно будет вызван.
Код для извлечения данных:
if messageCountDBReference == nil {
messageCountDBReference = FireBaseReferenceFactory.messageListReference(forSericeId: serviceId)
}
messageCountDBHandle = messageCountDBReference!.observe(.value, with: { (dataSnapShot) in
/// data processing
})
В ViewWillDisappear
удаление наблюдателя.
if messageCountDBHandle != nil {
messageCountDBReference?.removeObserver(withHandle: messageCountDBHandle!)
}
messageCountDBReference = nil
messageCountDBHandle = nil