【问题标题】: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,希望我清楚地描述了我的问题/问题(对不起,我的英语不好)

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

【问题讨论】:

    标签: android firebase kotlin firebase-realtime-database google-cloud-platform


    【解决方案1】:

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

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

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

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

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

    是的,您应该考虑将这些 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,尝试了很多方法,但它们根本不起作用,因为它不受支持,感觉很糟糕,现在我必须找到其他方法来解决问题。谢谢你的帮助
    • 如果您在转换它时遇到困难,请通过在 StackOverflow 上使用自己的 MCVE 发布一个新问题来向我们展示您的尝试,以便我和其他 Firebase 开发人员可以帮助您.
    【解决方案2】:

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

    【讨论】:

    • 是否有任何文档/视频/线程可以显示这种转换是如何完成的?
    • stackoverflow.com/questions/4830711/… 我希望这会有所帮助。
    • 谢谢,该链接非常有用,我在那里找到了一些有用的信息,我会尝试一些解决方案,我会及时更新!
    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 2015-07-02
    • 2011-04-04
    • 2018-03-17
    相关资源
    最近更新 更多