我正在尝试将字典发布到firebase,其中用户名为密钥,文本为值。我发布的是这样的:
let dict = ["\(currentUser!)":"\(text)"]
Database.database().reference().child("posts/\(ourID!)/comment").setValue(dict)
我正在尝试做什么,他用.subtitle单元格填充一个tableview,使用帖子的文本和用户值填充它,这样你就可以看到用户的用户名和帖子了。 注意:问题出在我尝试添加评论时。当我读取数据时,这会自动填充tableview。问题是当我单击按钮添加其他评论时。出于某种原因,我不能让数组填充第二篇文章。我有两个数组的原因是因为on是针对用户,而是针对文本。因此,在表视图中,每个单元格都填充了相应的帖子和匹配用户。
以下是我正在阅读的帖子:
let myTopPostsQuery = (Database.database().reference().child("posts").child("\(ourID!)/comment")).queryOrdered(byChild: "comment")
myTopPostsQuery.observe(DataEventType.childAdded, with: { (snapshot) in
print(snapshot)
print("User: \(snapshot.key)")
if let item = snapshot.value as? String {
self.comments.append(item)
print("Comments so far: \(self.comments)")
}
if let item2 = snapshot.key as? String {
self.keyUsers.append(item2)
print("Our users \(self.keyUsers)")
}
self.tableView.reloadData()
})
tableView.reloadData()
该帖子已成功进入Firebase数据库,但我在尝试填充tableview单元格时读取用户名时出错。我不知道为什么keyUsers无法正常工作。
cell.textLabel?.text = comments[indexPath.row]
cell.detailTextLabel?.text = keyUsers[indexPath.row]**Thread 1: Fatal error: Index out of range
答案 0 :(得分:0)
您是否为tableView更新了numberOfRowsInSection中的行数?
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return keyUsers.count //keyUsers should always be updated whenever there is changes in your items
}