Я пытаюсь загрузить сообщения с помощью JSQMessagesViewController.Но mediaMessages добавляются в массив последними, хотя они не должны быть.Изображения должны быть между текстовыми сообщениями, но они появляются последними.Я думаю, что мне нужно добавить пустой пузырь для изображений или что-то в этом роде.
JSQMessage с медиа Это mediaMessage должно быть между 2 и 3 сообщением
Мой код:
let query = Database.database().reference().child("chats").child(chatId!).queryLimited(toLast: 10)
_ = query.observe(.childAdded, with: { (snapshot) in
if let data = snapshot.value as? [String: AnyObject],
let id = data["userId"],
let name = self.chatName,
let text = data["content"]
{
if let image = data["image"] {
let storageKey = "images/" + self.chatId! + "/" + (image as! String)
let storageRef = Storage.storage().reference(withPath: storageKey)
storageRef.getData(maxSize: 1 * 1000 * 1000, completion: { (imageData, err) in
if err != nil {
print("Error with storage")
return
}
let imageMessage = UIImage(data: imageData!)
let mediaItem = JSQPhotoMediaItem(image: imageMessage)
if let message = JSQMessage(senderId: id as! String, displayName: name, media: mediaItem) {
self.messages.append(message)
self.finishReceivingMessage()
}
})
} else {
if let message = JSQMessage(senderId: id as! String, displayName: name, text: text as! String)
{
self.messages.append(message)
self.finishReceivingMessage()
}
}
}
})