【问题标题】:Random profile images in FirebaseFirebase 中的随机个人资料图片
【发布时间】:2016-11-07 17:41:23
【问题描述】:

我想知道,对于 identiconsgravatar 之类的东西,最好的方法是什么,但要快速将它们存储到 Firebase 并分配为 profileImage。

我想出的另一件事是制作图像 url-s 数组,并在注册时随机选择一个 url 并存储它。可以吗?

你们能引导我走向正确的方向吗?

【问题讨论】:

    标签: swift firebase firebase-storage


    【解决方案1】:

    我不建议您一次保存所有这些数据,尤其是在您最终拥有多张图片的情况下。我会推荐以下之一

    一个头像

    只需将所有新手的个人资料图片分配给此。您甚至可以继续将其存储在您的应用中,这样就无需调用 Firebase 或占用内存。

    取决于功能

    尝试根据用户的特定固定/事实特征分配头像。性是最可取的,因为它是二元的。 Facebook 在用户未添加个人资料图像时使用相同的方法。如果您选择此方法,则 真的 不需要 Firebase。

    动态

    多个默认头像可用并开放以供进一步添加。我猜你对这个很感兴趣。

    1. 用户选择

    将您的所有头像存储在 Firebase 中,然后让用户选择最吸引他们的头像。

    由于您将来会添加更多头像,因此我建议您不要一次加载所有头像。对于内存优化,

    • 查询前 10 个头像并将其呈现给用户
    • 如果用户没有选择头像,假设他们是已加载图像的 3/4,则查询另外 10 个头像。

    这种方法对内存非常友好,不会让用户不知所措。

    1. 随机选择

    将您的头像存储在 Firebase 存储中,同时在您的 Firebase 数据库中包含一个节点,用于跟踪可用头像的数量。对于这种情况,我们称之为total。除此之外,我的头像节点中有一个数字字符串到头像 url 映射。我的结构将与此类似

    {
      "avatars":
      {
        "total":10,
        "1":"https://www.google.com",
        "2":"https://www.facebook.com",
        "3":"https://www.youtube.com"
      }
    }
    

    这就引出了一个问题,如何随机查询头像?

    嗯嗯..

    • 查询 Firebase 以获取您当前拥有的头像数量
    • 生成一个随机整数;说x 遵守1<=x<=total
    • x转换为字符串; y = String(x)
    • 查询 Firebase 其中avatars.id == y 和瞧你有imageURL
    • imageURL下载图片

    这样做的缺点是用户无法控制,如果他们讨厌自己的头像,他们无能为力。

    好处是,在任何特定时刻,您都不会加载内存中的所有图像。

    【讨论】:

    • 太棒了!您给出了绝对完美的答案,一点也不难。我想要实现这一点的原因是我不希望看到一群用户拥有完全相同的个人资料图像,最好至少识别其中一些,因为在我的项目中,我不在乎用户的性别是否男性或女性,我需要其他解决方案。
    • @TarvoMäesepp 很高兴为您提供帮助。
    猜你喜欢
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2017-09-30
    • 2020-11-02
    • 2017-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多