JSQMessage с медиа после текстового сообщения - PullRequest
0 голосов
/ 11 июня 2018

Я пытаюсь загрузить сообщения с помощью 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()
                }
            }
        }
    })

1 Ответ

0 голосов
/ 28 июня 2018

Я изменил логику загрузки сообщений.https://www.raywenderlich.com/140836/firebase-tutorial-real-time-chat-2

...