Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解码Firebase base64 Swift 2.0_Swift_Firebase_Decode - Fatal编程技术网

解码Firebase base64 Swift 2.0

解码Firebase base64 Swift 2.0,swift,firebase,decode,Swift,Firebase,Decode,我正在尝试加载存储在Firebase服务器中的映像。我正在检查其他答案,但在能够打印正确的字符串值后,我找不到为什么会得到零: 在我的应用程序中,我有以下数据结构: 这里是我用来加载它的代码(注释中显示的值是nil) 谢谢 使用像这样的图像托管API并简单地将URL存储在Firebase中可能会容易得多 也就是说,问题可能是编码和解码选项不匹配。尝试在每个选项字段中提供[]。例如,要编码: let image = [#Image(imageLiteral: "icon.png")#] // y

我正在尝试加载存储在Firebase服务器中的映像。我正在检查其他答案,但在能够打印正确的字符串值后,我找不到为什么会得到零:

在我的应用程序中,我有以下数据结构:

这里是我用来加载它的代码(注释中显示的值是nil


谢谢

使用像这样的图像托管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
}