Firebase中的随机配置文件图像

时间:2016-11-07 17:41:24

标签: swift firebase firebase-storage

我想知道,对于类似identiconsgravatar的最佳方法,但是在swift中将它们存储到Firebase并指定为profileImage。

我提出的其他方法是制作图像url-s数组,并在注册时随机选择一个url并存储它。可以吗?

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

1 个答案:

答案 0 :(得分:1)

我不建议您一次性保存所有这些数据,特别是如果您最终会有多个图像。我会推荐以下之一

单个gravatar

只需将所有新手的个人资料图片分配给此。您甚至可以将其存储在应用内,因此无需使用Firebase或内存耗尽。

功能相关

尝试根据用户的特定固定/事实特征分配gravatars。性别是二进制以来最优选的。当用户未添加配置文件图像时,Facebook使用相同的方法。如果您选择此方法,Firebase不需要

<强>动态

有多个默认头像可供使用,可供进一步添加。我的猜测是你对这个感兴趣。

  1. 用户选择
  2. 让您的所有头像都存储在Firebase中,并让用户选择最具吸引力的头像。

    由于您将来会添加更多虚拟形象,我建议不要立即加载所有虚拟形象。对于内存优化,

    • 查询前10个头像并将其呈现给用户
    • 如果用户没有选择头像,让我们说他们已经加载了已经加载的图像的3/4,那就查询另外10个头像。

    这种方法对内存非常友好,并且不会因为这么多信息而压倒用户。

    1. 随机选择
    2. 将您的头像存储在Firebase存储中,但也在Firebase数据库中包含一个跟踪可用头像数量的节点。对于这种情况,我们称之为total。与此同时,我的头像节点中有一个数字字符串到头像网址映射。我的结构与此类似

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

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

      嗯嗯..

      • 查询Firebase以获取您当前拥有的头像数
      • 生成随机整数;说x遵守1<=x<=total
      • x转换为String; y = String(x)
      • avatars.id == y处查询Firebase,并且您拥有imageURL
      • imageURL
      • 下载图片

      这样做的缺点是用户无法控制,如果他们讨厌他们的化身,他们就无能为力。

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