swift - Firebase 中的随机个人资料图片

标签 swift firebase firebase-storage

我想知道,对于像 identicons 这样的事情,最好的方法是什么?和 gravatar但很快并将它们存储到 Firebase 中并指定为 profileImage。

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

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

最佳答案

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

单个头像

只需将所有新手的头像分配给它即可。您甚至可以继续将其存储在您的应用程序中,这样就不需要 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 下载图像

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

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

关于swift - Firebase 中的随机个人资料图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471260/

相关文章:

swift - 在快速消除 View 后提供成功操作的通知

java - 有没有办法读取从 Firebase 下载的 Excel 文件?

php - firebase 存储和从 php 上传

swift - 如何在更新容器 B 后重新加载容器 A?

swift - 以下语法是否适合解析 Swift

swift - 在 Swift 中访问多维数组的最有效方法?

Android - 我在 firebase 控制台中看不到任何事件

swift - 执行异步 Cloud Function 的问题

javascript - 保存数据时等待 Firebase 响应

javascript - 在 forEach 中调用 firebase 会使迭代不起作用