我想知道,对于类似identicons和gravatar的最佳方法,但是在swift中将它们存储到Firebase并指定为profileImage。
我提出的其他方法是制作图像url-s数组,并在注册时随机选择一个url并存储它。可以吗?
你们能引导我走向正确的方向吗?
答案 0 :(得分:1)
我不建议您一次性保存所有这些数据,特别是如果您最终会有多个图像。我会推荐以下之一
单个gravatar
只需将所有新手的个人资料图片分配给此。您甚至可以将其存储在应用内,因此无需使用Firebase或内存耗尽。
功能相关
尝试根据用户的特定固定/事实特征分配gravatars。性别是二进制以来最优选的。当用户未添加配置文件图像时,Facebook使用相同的方法。如果您选择此方法,Firebase不需要 。
<强>动态强>
有多个默认头像可供使用,可供进一步添加。我的猜测是你对这个感兴趣。
让您的所有头像都存储在Firebase中,并让用户选择最具吸引力的头像。
由于您将来会添加更多虚拟形象,我建议不要立即加载所有虚拟形象。对于内存优化,
这种方法对内存非常友好,并且不会因为这么多信息而压倒用户。
将您的头像存储在Firebase存储中,但也在Firebase数据库中包含一个跟踪可用头像数量的节点。对于这种情况,我们称之为total
。与此同时,我的头像节点中有一个数字字符串到头像网址映射。我的结构与此类似
{
"avatars":
{
"total":10,
"1":"https://www.google.com",
"2":"https://www.facebook.com",
"3":"https://www.youtube.com"
}
}
这引出了一个问题,如何随机查询头像?
嗯嗯..
x
遵守1<=x<=total
x
转换为String; y = String(x)
avatars.id == y
处查询Firebase,并且您拥有imageURL
imageURL
这样做的缺点是用户无法控制,如果他们讨厌他们的化身,他们就无能为力。
好处是,在任何特定时刻,你不加载内存中的所有图像。