How to add an image to a record in a Firestore database(如何将图像添加到FiRestore数据库中的记录)
本文介绍了如何将图像添加到FiRestore数据库中的记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要将JPEG图像添加到Firestore DB记录。我更喜欢的方式是在BLOB中,就像我在SQLite记录中使用的那样。我尝试此操作时遇到一些问题。
这是我到目前为止的最大努力:
public Blob getImage() {
Uri uri = Uri.fromFile(new
File(mCurrentPhotoPath));
File f1 = new File(mCurrentPhotoPath);
URL myURL = null;
try {
myURL = f1.toURI().toURL();
} catch (MalformedURLException e) {
e.printStackTrace();
}
Bitmap bitmap = null;
BitmapFactory.Options options = new
BitmapFactory.Options();
options.inPreferredConfig =
Bitmap.Config.ARGB_8888;
try {
if (myURL != null) {
bitmap =
BitmapFactory.decodeStream(
myURL.openConnection().getInputStream());
String wBlob =
encodeToBase64(bitmap,
Bitmap.CompressFormat.JPEG, 100);
blob = fromBase64String(wBlob);
}
} catch (java.io.IOException e) {
e.printStackTrace();
}
return blob;
}
我的问题在线路中:
blob = fromBase64String(wBlob);
我在将BLOB传递给设置记录的类时也有问题:
intent.putExtra("blobImage", blob );
推荐答案
作为一般规则,除非您存储的图标非常小,否则我建议您不要执行此操作。&q;
虽然您可以在Cloud Firestore中存储原生二进制数据,但您会遇到数据库中的一些限制,具体地说,单个文档的大小不能超过1MB。(您实际上不需要对图像进行base64编码。) 相反,我会将图像本身存储在Cloud Storage for Firebase中,然后将下载URL保存在Cloud Firestore中。云存储在存储成本方面大约便宜7倍,在最大文件大小方面有更大的限制,通过抓取这些下载URL,您可以利用毕加索(Picasso)和Glide等第三方库来为您管理图像下载,同时还可以添加内存或磁盘缓存或显示占位符图形等漂亮功能。有关详细信息,您可能需要查看";Getting Started with Firebase Storage on Android";视频。
这篇关于如何将图像添加到FiRestore数据库中的记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何将图像添加到FiRestore数据库中的记录
基础教程推荐
猜你喜欢
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- 如何强制对超级方法进行多态调用? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01