![](/img/trans.png)
[英]Message sent successfully but doesn't appear in device in the development mode in ios
[英]IOS : message doesn't appear immediately in tableview from firebase database
当我添加第一条消息时,它会立即出现在 tableview 中,但下一条消息不会出现,我必须返回并返回同一个聊天才能获取它们
func fetchMessage(key1:String){
let mydatabase = FIRDatabase.database().reference().child("message")
let query = mydatabase.queryOrderedByKey().queryEqual(toValue: key1)
query.observe(.childAdded) { (snapshot) in
for dict in snapshot.children{
let childsnap = dict as! FIRDataSnapshot
let dict2 = childsnap.value as! [String: Any]
var message = chatmssage()
let body = dict2["MesageBody"]! as? String
let email = dict2["from"]! as? String
message.body = body
message.email = email
self.chatmessagearr.append(message)
self.mytableview.reloadData()
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
mytableview.delegate = self
mytableview.dataSource = self
self.tabBarController?.tabBar.isHidden = true
messageTXTF.delegate = self
mytableview.separatorStyle = .none
let curID = (user!["id"] as? String)!
let toID = self.reciever.uid!
key = (curID < toID ? curID+toID : toID+curID )
fetchMessage(key1:key!)
}
获取完成后,您应该从主线程调用 self.myTableView.reloadData()。 像这样,
DispatchQueue.main.async {
self.myTableView.reloadData()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.