我有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)
}
最佳答案
你需要
let current = ref.child("doctors").child(userID!)
current.observe ///
current.removeAllObservers()
如果您需要删除Observers,则需要在添加子级时深入了解,因为父级的removeAllObservers
不会为子级删除它们
关于ios - 如何删除 Firebase 观察者?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55366003/