You need to cast snapshot.value as? [String: AnyObject]
first because the compiler does not know what type of snapshot.value is.
Like this:
if let value = snapshot.value as? [String: AnyObject] {
let title = value["title"] as! String
let message = value["message"] as! String
self.posts.insert(contentsOf: postStruct(title: title, message: message), at: index, 0)
self.tableView.reloadData()
}