【发布时间】:2019-05-06 23:39:36
【问题描述】:
我是编程新手,目前正在尝试制作类似应用程序的新闻源。我的目标是通过我的应用程序和表格视图中的新帖子注意到 firebase 数据库的变化。目前我可以在我的 tableView 中显示一篇文章。它只是在您重新打开 ViewController 时发生变化。 我的问题之一是我不知道如何使用 obserSingleEvent 以外的任何其他命令,我很确定这是我的主要错误之一。 所以我的问题是: 1.如何让tableView在出现变化时立即重新加载? 2. 如何显示多于一个帖子? (3.如何先显示最近的帖子?)
class ViewController: BaseViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet var newsfeedTableView: UITableView!
var ref: DatabaseReference!
var posts = [String]()
override func viewDidLoad() {
super.viewDidLoad()
addSlideMenuButton()
ref = Database.database().reference()
ref.child("posts").queryOrderedByKey().observeSingleEvent(of: .childAdded, with: { snapshot in
let newPost = snapshot.value as? String
self.posts.append(newPost!)
print("newPost: \(newPost)")
print("posts: \(self.posts)")
self.newsfeedTableView.reloadData()
print("reloadData")
})
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return (posts.count)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCell.CellStyle.default, reuseIdentifier: "cell")
cell.textLabel?.text = posts[indexPath.row]
print("posts in cell: \(posts)")
return cell
}
}
【问题讨论】:
标签: ios swift firebase firebase-realtime-database swift4