解码Firebase base64 Swift 2.0
我正在尝试加载存储在Firebase服务器中的映像。我正在检查其他答案,但在能够打印正确的字符串值后,我找不到为什么会得到零: 在我的应用程序中,我有以下数据结构: 这里是我用来加载它的代码(注释中显示的值是nil)解码Firebase base64 Swift 2.0,swift,firebase,decode,Swift,Firebase,Decode,我正在尝试加载存储在Firebase服务器中的映像。我正在检查其他答案,但在能够打印正确的字符串值后,我找不到为什么会得到零: 在我的应用程序中,我有以下数据结构: 这里是我用来加载它的代码(注释中显示的值是nil) 谢谢 使用像这样的图像托管API并简单地将URL存储在Firebase中可能会容易得多 也就是说,问题可能是编码和解码选项不匹配。尝试在每个选项字段中提供[]。例如,要编码: let image = [#Image(imageLiteral: "icon.png")#] // y
谢谢 使用像这样的图像托管API并简单地将URL存储在Firebase中可能会容易得多 也就是说,问题可能是编码和解码选项不匹配。尝试在每个选项字段中提供
[]
。例如,要编码:
let image = [#Image(imageLiteral: "icon.png")#] // your UIImage
let imageData = UIImagePNGRepresentation(image)! // or however you store your image
let base64EncodedString = imageData.base64EncodedStringWithOptions([])
以及解码:
if let decodedData = NSData(base64EncodedString: base64EncodedString, options: []),
let decodedImage = UIImage(data: decodedData) {
// do something with decodedImage
}
如果这不起作用,Firebase可能会截断图像,因为字符串长度超出了它们的限制
这种方法不是存储和加载图像的好方法——你错过了HTTP缓存、内容类型、服务器端优化等等——所以如果可以的话,我会尽量避免。读了你答案的第一句话后,我投了赞成票。剩下的可能也不错,但这一点是值得的非常感谢,亚伦,这就是问题所在。我将代码与其他帖子进行了比较,但我没有意识到问题不在于代码,而在于我使用了不同的编码和解码方式。还感谢您提供有关托管API的建议。下次我一定要试试。
if let decodedData = NSData(base64EncodedString: base64EncodedString, options: []),
let decodedImage = UIImage(data: decodedData) {
// do something with decodedImage
}