在firebase中保存svg的最佳方法是啥?

Posted

技术标签:

【中文标题】在firebase中保存svg的最佳方法是啥?【英文标题】:what is the best way to save an svg in firebase?在firebase中保存svg的最佳方法是什么? 【发布时间】:2021-11-02 21:26:36 【问题描述】:

我有一个 android 应用程序,我想在其中实现用户可以上传 SVG 的功能,然后将 SVG 保存在 firebase 实时数据库中,然后其他用户可以看到它并与之交互,这就是我选择的原因SVG 优于普通照片或 PNG 是因为它非常小并且不消耗存储或数据来加载,而且它们在多种显示密度和不同的屏幕比例下更好,问题是我不知道这是否可行我不知道它会保存为什么格式,因为我有一个保存 SVG 路径的想法,但没有找到将其转换为可绘制/矢量的方法,甚至没有找到如何从中获取路径一个 SVG,希望我清楚地描述了我的问题/问题(对不起,我的英语不好)

    如何在 Firebase 实时数据库中保存 SVG/矢量? 如何将其转回 drawable/ImageView/vector...任何可显示的内容? 有没有更好的方法来解决这个想法/问题?

【问题讨论】:

【参考方案1】:

如何在 Firebase 实时数据库中保存 svg/vector?

正如 Bharat Vishe 在他的回答中提到的,您可以将文件转换为 base64 并将它们存储在实时数据库中。您可以使用以下帖子中的答案简单地做到这一点:

How to convert an Image to base64 string in java?

如何将其转回drawable/ImageView/vector...任何可显示的东西?

为了能够显示来自实时数据库的图像,您需要使用以下帖子中的答案将 base64 字符串解码回图像:

Convert base64 string to Image in Java

有没有更好的方法来解决这个想法/问题?

是的,您应该考虑将这些 SVG 文件托管到 Cloud Storage for Firebase:

Cloud Storage for Firebase 专为需要存储和提供用户生成内容(例如照片或视频)的应用开发者而构建。

【讨论】:

你好,谢谢你的帮助,我试图查看 Firebase 的云存储,我在那里保存了我的 svg,但找不到任何方法将其转换为 Android 中的 ImageView,任何想法该怎么做? “无法找到任何方法将其转换为 android 中的 ImageView”并没有提供足够的信息来提供帮助。但简而言之,一旦您将图像上传到 Firebase 存储,您就可以获得download URL。例如,使用此 URL,您可以使用 Glide 将图像设置为 ImageView。 你好,我尝试了glide和其他很多方法来实现这个想法,似乎没有办法做到,问题出在android而不是firebase,android没有办法转一个SVG在运行时通过代码到 ImageView,尝试了很多方法,但它们根本不起作用,因为它不受支持,感觉很糟糕,现在我必须找到其他方法来解决问题。谢谢你的帮助 如果您在转换它时遇到困难,请通过在 *** 上使用自己的 MCVE 发布一个新问题来向我们展示您的尝试,以便我和其他 Firebase 开发人员可以帮助您.【参考方案2】:

您可以将.svg 文件转换为base64 并将其作为纯文本存储在firebase 中。

【讨论】:

是否有任何文档/视频/线程可以显示这种转换是如何完成的? ***.com/questions/4830711/… 我希望这会有所帮助。 谢谢,该链接非常有用,我在那里找到了一些有用的信息,我会尝试一些解决方案,我会及时更新!

以上是关于在firebase中保存svg的最佳方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

将 SVG 作为开罗图像表面加载的最佳方法是啥?

使用 firebase 创建简单身份验证的最佳方法是啥?

在小部件中设置 Firebase 崩溃用户标识符的最佳方法是啥?

在反应应用程序中保护 Firebase API 密钥以使其无法公开访问的最佳方法是啥? [复制]

firebase cloud firestore中某个字段的CRUD子项的最佳方法是啥?

在firebase中区分普通用户和管理员的最佳方法是啥? [复制]