IOS:消息不会立即出现在来自 firebase 数据库的 tableview 中
Posted
技术标签:
【中文标题】IOS:消息不会立即出现在来自 firebase 数据库的 tableview 中【英文标题】:IOS : message doesn't appear immediately in tableview from firebase database 【发布时间】:2020-02-06 09:39:21 【问题描述】:当我添加第一条消息时,它会立即出现在表格视图中,但下一条消息没有出现,我必须返回并返回同一个聊天室才能获得它们
retrieve messages method
my database
viewDidLoad `
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!)
【问题讨论】:
您应该将代码添加为文本,而不是添加图像。 @chirag90 ...没关系 【参考方案1】:您应该在获取完成后从主线程调用 self.myTableView.reloadData()。像这样,
DispatchQueue.main.async
self.myTableView.reloadData()
【讨论】:
对不起先生,我在retrieve func的末尾添加了线程但同样的问题以上是关于IOS:消息不会立即出现在来自 firebase 数据库的 tableview 中的主要内容,如果未能解决你的问题,请参考以下文章
无法在 ios 中接收来自 react-native-firebase 的通知消息