#ios #swift #firebase #firebase-realtime-database
#iOS #swift #firebase #firebase-база данных в реальном времени
Вопрос:
У меня есть TableView и refreshControl. Я хочу, чтобы данные TableView перезагружались только при извлечении для обновления. Я создал функцию, которая перезагружает данные, но она работает всегда.
Данные перезагружаются после извлечения для обновления, но также наблюдают за обновлением TableView. Как это удалить? Я хочу заставить наблюдать, перезагрузить данные и удалить наблюдение (удалить соединение).
func reloadTable() {
let ref = Database.database().reference()
let userID = Auth.auth().currentUser?.uid
postData.removeAll()
var databaseHandle: DatabaseHandle?
databaseHandle = ref.child("doctors").child(userID!).observe(.childAdded) {
(snapshot) in
if let actualPost = snapshot.value as? String {
self.postData.append(actualPost)
self.table.reloadData()
}
}
// I tried this:
ref.removeAllObservers()
// And this as well:
ref.removeObserver(withHandle: databaseHandle)
}
Ответ №1:
Вам нужно
let current = ref.child("doctors").child(userID!)
current.observe ///
current.removeAllObservers()
если вам нужно удалить OBSERVERS, вам нужно углубиться при добавлении дочерних элементов, поскольку removeAllObservers
for parents не удаляет их для дочерних элементов