【问题标题】:How to remove firebase observer?如何删除firebase观察者?
【发布时间】:2019-03-27 08:04:03
【问题描述】:

我有 tableView 和 refreshControl。我希望只有在拉刷新时才重新加载 tableView 的数据。我已经制作了重新加载数据的功能,但它始终有效。

pull-to-refresh 后数据重新加载,还要观察更新 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)
}

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案1】:

    你需要

    let current = ref.child("doctors").child(userID!) 
     current.observe ///
    current.removeAllObservers()
    

    如果您需要 removeObservers ,则需要在添加 childs 时深入,因为父母的removeAllObservers 不会为孩子删除它们

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多