如何在 Firebase 上存储和查看图像?
6 回答
更新 (20160519):Firebase 刚刚发布了一项名为Firebase Storage的新功能。这允许您将图像和其他非 JSON 数据上传到专用存储服务。我们强烈建议您使用它来存储图像,而不是将它们作为 base64 编码数据存储在 JSON 数据库中。
你当然可以!根据图像的大小,您有几个选择:
1. 对于较小的图像(10mb 以下)
我们在这里有一个示例项目: https ://github.com/firebase/firepano
一般的方法是在本地加载文件(使用 FileReader),这样您就可以将其存储在 Firebase 中,就像存储任何其他数据一样。由于图像是二进制文件,因此您需要获取 base64 编码的内容,以便将其存储为字符串。或者更方便的是,您可以将其存储为data: url然后准备作为 img 标签的 src 放入(这就是示例所做的)!
2.对于更大的图像
Firebase 确实有 10mb(utf8 编码的字符串数据)的限制。如果您的图像更大,则必须将其分成 10mb 的块。您是对的,尽管 Firebase 针对频繁更改的小字符串而不是数兆字节的字符串进行了优化。如果您有大量的大型静态数据,我肯定会推荐 S3 或 CDN。
是的,您可以在 Firebase 中存储和查看图像。您可以使用文件选择器来获取图像文件。然后你可以随心所欲地托管图像,我更喜欢 Amazon s3。托管图像后,您可以使用为图像生成的 URL 显示图像。
希望这可以帮助。
我最终自己将图像存储为 base64 格式。当从 firebase 回调时,我将它们从它们的 base64 值转换。
您还可以使用名为的服务Filepicker
将您的图像存储到他们的服务器和Filepicker,现在称为 Filestack,将为您提供图像的 url。您可以将 URL 存储到 Firebase。
有几种方法我首先按照 Grendal2501 的方法进行。然后我做了类似于 user15163 的操作,您可以将图像 URL 存储在 firebase 中并将图像托管在您的 firebase 主机或 Amazon S3 上;
在 JSON 中使用 Base64 字符串会非常繁重。解析器必须做很多繁重的工作。目前,Fresco 只支持 base 支持 Base64。最好在 Amazon Cloud 或 Firebase Cloud 上放一些东西。并获取图像作为 URL。这样您就可以使用 Picasso 或 Glide 进行缓存。