如何在firebase上存储和查看图像?


当前回答

最后我自己用base64格式存储图像。当从firebase回调时,我将它们从base64值转换。

其他回答

更新(20160519):Firebase刚刚发布了一个名为Firebase Storage的新功能。这允许您将图像和其他非json数据上传到专用存储服务。我们强烈建议您使用它来存储图像,而不是将它们存储为JSON数据库中的base64编码数据。

你当然可以!根据图片的大小,你有几个选择:

1. 小图像(10mb以下)

我们有一个这样做的示例项目:https://github.com/firebase/firepano

一般的方法是在本地加载文件(使用FileReader),这样就可以像存储其他数据一样将其存储在Firebase中。由于图像是二进制文件,因此需要获取base64编码的内容,以便将其存储为字符串。或者更方便的是,您可以将其存储为data: url,然后准备作为img标记的src插入(这就是示例所做的)!

2. 对于较大的图像

Firebase有10mb (utf8编码的字符串数据)的限制。如果你的图像更大,你必须把它分成10mb的块。你是对的,Firebase更适合频繁变化的小字符串,而不是几兆字节的字符串。如果你有大量的静态数据,我绝对推荐S3或CDN代替。

你也可以使用一个名为Filepicker的服务,它会将你的图像存储到他们的服务器上,Filepicker现在被称为Filestack,它会为你提供图像的url。您可以将url存储到Firebase。

在JSON中使用Base64字符串将非常繁重。解析器必须做大量繁重的工作。目前,Fresco只支持Base64。你最好把东西放到亚马逊云或Firebase云上。并获取一个图像作为URL。这样你就可以使用Picasso或Glide进行缓存。

最后我自己用base64格式存储图像。当从firebase回调时,我将它们从base64值转换。

有几种方法,我首先用的是Grendal2501的方法。然后我做了类似于user15163,你可以存储图像URL在firebase和托管图像在您的firebase主机或Amazon S3;