2016-11-07 91 views
0

我想知道,对于诸如identiconsgravatar之类的东西,最好的办法是在swift中将其存储到Firebase中并将其分配为profileImage。在Firebase中随机的个人资料图片

我想出了其他的事情,将是使图像的URL-S的阵列和注册时,随机选择一个URL并储存起来。可以做吗?

你们可以导致我正确的方向?

回答

1

我不建议你在一次特别举行所有这些数据,如果你最终有多个图像。我建议以下

单一的gravatar

只要所有新手的轮廓影像分配给这一个。您甚至可以继续将其存储在您的应用程序中,因此不需要Firebase呼叫或内存消耗。

功能依赖

尝试根据用户的特定的固定/实际特性分配gravatars。性别是最好的,因为它的二进制。 Facebook使用时没有轮廓的图像由用户添加的相同的方法。如果您选择这种方法,火力地堡是不是真的需要

动态

多个默认提供和开放,以进一步增加化身。我的猜测是你对这个感兴趣。

  1. 用户选择

让所有存储在火力地堡的头像和简单的让用户选择最能打动他们。

既然你在未来增加更多的头像,然后我对装载倒是建议所有的化身一次。对于内存优化,

  • 查询前10个头像和将它们展示给用户
  • 如果用户没有选择的头像,让我们说他们是3/4通过已经加载的图片,再查询10个头像。

这种方法是非常内存友好的,它不会用太多的信息压倒用户。

  • 随机选择
  • 具有存储在火力地堡存储空间中的化身,但也包括在火力地堡数据库的节点追踪可用的化身的数量。对于这种情况,可以称之为total。随着这个,我会在我的头像节点中有一个数字字符串到头像网址映射。我的结构将类似于此

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

    这引出了一个问题,东西我怎么随机查询替身?

    呃.. huuh

    • 查询火力地堡获得的化身的数量,您目前拥有
    • 生成一个随机整数;说x其中坚持1<=x<=total
    • 转换x为字符串;​​
    • 查询火力地堡其中avatars.id == y,瞧你有imageURL
    • imageURL

    这样做的缺点是,用户没有控制,他们应该恨他们的头像下载图像没有什么可以做关于它。

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

    +0

    太棒了!你给了绝对完美的答案,这应该不难。为什么我想要实现这一点,我不想看到大量用户具有完全相同的配置文件图像,将很高兴至少识别其中的一些,因为在我的项目中,我不在乎用户的性别是男性或女性,我需要其他解决方案。 –

    +0

    @TarvoMäesepp很乐意提供帮助。 – eshirima

    相关问题