首页 > 解决方案 > JSQMessage 与文本消息后的媒体

问题描述

我正在尝试使用 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()
                }
            }
        }
    })

标签: iosswiftfirebase-realtime-databasefirebase-storagejsqmessagesviewcontroller

解决方案



推荐阅读