IOS: сообщение не появляется сразу же в виде таблицы из базы данных Firebase - PullRequest
0 голосов
/ 06 февраля 2020

когда я добавляю первое сообщение, оно сразу появляется в виде таблицы, но следующие сообщения не появляются, я должен вернуться и вернуться в тот же чат, чтобы получить их

метод получения сообщений

моя база данных

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!)
}

1 Ответ

0 голосов
/ 06 февраля 2020

Вы должны вызвать self.myTableView.reloadData () из основного потока после завершения выборки. Вот так

DispatchQueue.main.async {
    self.myTableView.reloadData()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...