Firebase和填充单元格的“索引超出范围”
Posted
技术标签:
【中文标题】Firebase和填充单元格的“索引超出范围”【英文标题】:"Index out of range" with Firebase and populating cell 【发布时间】:2017-12-08 00:34:50 【问题描述】:我正在尝试向 firebase 发布一个字典,其中用户名作为键,文本作为值。我是这样发布的:
let dict = ["\(currentUser!)":"\(text)"]
Database.database().reference().child("posts/\(ourID!)/comment").setValue(dict)
我正在尝试为她做的事情是,他使用 .subtitle 单元格填充表格视图,使用帖子的文本和用户值填充它,这样您就可以看到用户的用户名和他们的帖子。 注意:问题出在我尝试添加评论时。当我读取数据时,这会自动填充表格视图。问题是当我单击一个按钮添加另一个评论时。出于某种原因,我无法让数组填充第二篇文章。我有两个数组的原因是因为 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()
虽然我在尝试填充 tableview 单元格时读取用户名时出错,但该帖子已成功发送到 Firebase 数据库。我不知道为什么 keyUsers 不能正常工作。
cell.textLabel?.text = comments[indexPath.row]
cell.detailTextLabel?.text = keyUsers[indexPath.row]**Thread 1: Fatal error: Index out of range
【问题讨论】:
【参考方案1】:您是否为 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
【讨论】:
是的,但我仍然无法将字典作为数组发布。它只是不断重写以前的值。以上是关于Firebase和填充单元格的“索引超出范围”的主要内容,如果未能解决你的问题,请参考以下文章
Swift Firebase UISearchController 索引超出范围