gpt4 book ai didi

swift firebase 从存储中获取图像并在 JSQMessage Controller 中显示

转载 作者:行者123 更新时间:2023-11-28 13:37:29 25 4
gpt4 key购买 nike

我想在 Firebase 存储中获取保存的图像。

我将 url 保存在 Firebase 数据库中的字符串值中:

mediaUrl = url!.absoluteString

现在我想获取这张图片。

我观察消息。

func observeMessages() {
let query = Constants.refs.databaseChats.child(chatId).queryLimited(toLast: 50)

_ = query.observe(.childAdded, with: { [weak self] snapshot in

if let data = snapshot.value as? [String: String],
let id = data["sender_id"],
let name = data["name"],
let timestamp = data["timestamp"],
let media = data["media"],
let text = data["text"]?.encode(),
!text.isEmpty
{
if media == "text" {
if let message = JSQMessage(senderId: id, senderDisplayName: name, date: self!.dateFormatter.date(from: timestamp), text: text) {
self?.messages.append(message)
self?.finishReceivingMessage()
}
}
else if media == "image" {
let storageRef = Storage.storage().reference(withPath: text)
storageRef.getData(maxSize: 1 * 1024 * 1024) { (data, error) -> Void in
if data != nil {
let image = UIImage(data: data!)
if let imageMessage = JSQMessage(senderId: id, senderDisplayName: name, date: self!.dateFormatter.date(from: timestamp), media: image as! JSQMessageMediaData) {
self?.messages.append(imageMessage)
print("image message")
self?.finishReceivingMessage()
}
}
}
}

}
})
}

如果媒体是图像,我想创建一个图像气泡,当文本是一个普通文本气泡时。但是我在 JSQMEssageViewController 中没有得到图像。什么地方出了错?有人可以帮我吗?

我在控制台中获取了 url:

https://firebasestorage.googleapis.com/v0/b/emmessenger-22.appspot.com/o/media%2FJzl0EUmjSvZZcpCd8Mdi8X9q87G2%2F03.06.2019%2021:26:39?alt=media&token=1c45feaf-0ed8-4f88-9c1f-13f4c6a8f3d4

然后我在控制台得到以下信息:

2019-06-03 21:28:21.092580+0200 EMMessenger[38502:554129] [] nw_proxy_resolver_create_parsed_array PAC evaluation error: NSURLErrorDomain: -1003

谢谢

最佳答案

实际上在这种情况下您不需要调用getData 函数。因为你正在使用 tableView 所以我建议使用 SDWebImage库以异步方式将图像加载到单元格上。一旦你有了 imageURL 就调用下面的方法

yourImageView.sd_setImage(with: URL(string: "https://firebasestorage.googleapis.com/v0/b/emmessenger-22.appspot.com/o/media%2FJzl0EUmjSvZZcpCd8Mdi8X9q87G2%2F03.06.2019%2021:26:39?alt=media&token=1c45feaf-0ed8-4f88-9c1f-13f4c6a8f3d4"), placeholderImage: UIImage(named: "placeholder.png"))

休息图书馆会为你做的。

关于swift firebase 从存储中获取图像并在 JSQMessage Controller 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56433463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com