如何在firebase上存储和查看图像?
当前回答
在JSON中使用Base64字符串将非常繁重。解析器必须做大量繁重的工作。目前,Fresco只支持Base64。你最好把东西放到亚马逊云或Firebase云上。并获取一个图像作为URL。这样你就可以使用Picasso或Glide进行缓存。
其他回答
更新(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代替。
有几种方法,我首先用的是Grendal2501的方法。然后我做了类似于user15163,你可以存储图像URL在firebase和托管图像在您的firebase主机或Amazon S3;
最后我自己用base64格式存储图像。当从firebase回调时,我将它们从base64值转换。
在JSON中使用Base64字符串将非常繁重。解析器必须做大量繁重的工作。目前,Fresco只支持Base64。你最好把东西放到亚马逊云或Firebase云上。并获取一个图像作为URL。这样你就可以使用Picasso或Glide进行缓存。
是的,您可以在Firebase中存储和查看图像。您可以使用文件选择器来获取映像文件。然后,您可以任意托管映像,我更喜欢Amazon s3。托管图像之后,您可以使用为图像生成的URL显示图像。
希望这能有所帮助。
推荐文章
- 使用{merge: true}设置的Firestore与更新之间的差异
- 如何在不使用Firebase控制台的情况下发送Firebase云消息通知?
- 在Firebase的云功能中启用CORS
- 独立开发和开发Firebase环境
- 我如何解决错误'TS2532:对象可能是'未定义'?
- 未能解决:com.google.firebase:firebase-core:9.0.0
- FirebaseInstanceIdService已弃用
- 如何存储和检索图像
- Firebase Firestore“引用”数据类型的好处是什么?
- 基于Firebase中的多个where子句进行查询
- PERMISSION_DENIED:缺少或权限不足
- Cloud Firestore收集计数
- 当应用程序在后台时,未调用Firebase onmessagerreceived
- API 'variant.getExternalNativeBuildTasks()'已过时,已被'variant.getExternalNativeBuildProviders()取代
- 将承诺转换为可观察对象