我正在处理使用Firebase实时数据的应用程序。每当我向数据库添加一个条目时,它都会显示在tableView上,但是,当我从数据库中删除某些内容(从Firebase中手动删除它)时,它不会在应用程序上刷新,并且tableView不会刷新。
这是我刷新以及viewDidLoad()
和viewDidAppear()
方法的代码。
override func viewDidLoad() {
super.viewDidLoad()
dbRef = FIRDatabase.database().reference().child("post-items")
startObservingDB()
self.tableView.estimatedRowHeight = 40.0
self.tableView.rowHeight = UITableViewAutomaticDimension
}
override func viewDidAppear(_ animated: Bool){
super.viewDidAppear(true)
startObservingDB()
}
func startObservingDB(){
dbRef.observeSingleEvent(of: .value, with: { (snapshot: FIRDataSnapshot) in
var newPost = [Post]()
for post in snapshot.children{
let postObject = Post(snapshot: post as! FIRDataSnapshot)
newPost.append(postObject)
}
self.posts = newPost
self.tableView.reloadData()
}) { (error) in
print(error.localizedDescription)
}
}
我错过了什么?或者我做错了什么?