使用Swift的Firebase用户收件箱
我想为我的应用中的用户创建收件箱。然而,我有一个问题重新加载tableView。如果我删除self.tabelView.reloadData()
应用程序视图运行正常,但当然不会更新表格单元格。查询确实是因为我可以打印出结果数组。我得到的错误是LLDB错误。它声明“EXC_BreakPoint”,我没有设置任何中断点。这里是我的代码:使用Swift的Firebase用户收件箱
class InboxTableViewController: UITableViewController {
var pinggedUser: String!
var toBeUserId: String!
let dataBase = FIRDatabase.database()
var SecondResultArray: [FIRDataSnapshot]! = []
override func viewDidLoad() {
messageReference = rootReference.child("messages")
//let UserRef = messageReference.child((FIRAuth.auth()?.currentUser?.displayName)!)
messageReference.queryOrderedByChild("senderName")
.observeSingleEventOfType(.Value, withBlock:{ snapshot in
for child in snapshot.children {
self.SecondResultArray.append(child as! FIRDataSnapshot)
//print(self.ResultArray)
}
print(self.SecondResultArray)
self.tableView.reloadData()
})
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return SecondResultArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("inboxCell", forIndexPath: indexPath)
// Configure the cell...
let inBox: FIRDataSnapshot! = self.SecondResultArray[indexPath.row]
let book = inBox.value as! Dictionary<String, String>
let receiver = book["receiver"] as String!
let senderId = book["senderId"] as String!
let messageText = book["text"] as String!
let senderName = book["senderName"] as String!
cell.textLabel?.numberOfLines = 0
cell.textLabel?.lineBreakMode = NSLineBreakMode.ByWordWrapping
cell.textLabel?.text = "Your Messages With:" + "" + senderName
return cell
}
}
可能是你没有注册你的tableview。
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
我该怎么做?在viewDidLoad中? –
是在tableview重载之前。 – kalpesh
同样的错误,并没有工作。我怀疑它与FirebaseQuery内部有什么关系,但如果我在查询之外调用它,它不会重新加载表。 –
什么是你确切的问题EXC_BreakPoint或tablecell不会被更新? – kalpesh
我实际上不知道表格是否会更新,因为那个错误。所以我会说这个错误是我的主要问题。它在viewDidLoad中调用self.tableView.reloadData时发生。当我在其他地方调用它时,没有错误,但是表格不会加载数据。 –