ios - Firebase 存储图像在集合视图中的随机顺序
问题描述
在我的 firebase 数据库中,我有几个项目,每个项目都有一个名称和一个图像。在我的应用程序中,我想在一个集合视图中显示所述参数,每个单元格中都有一个图像视图和一个标签。我可以在标签中显示每个项目的名称,也可以在 imageview 中显示项目图像,但是从 firebase 下载的图像每次都以随机顺序出现。标签每次都以正确的固定顺序显示项目名称。每个项目都有一个名为“image”的子项和一个名为“storage”的子项,该子项存储来自 firebase 存储的图像 url。下载图片的代码:
func downloadImg() {
let ref = Database.database().reference().child(itemNumber1)
ref.observeSingleEvent(of: .value) { (snapshot) in
for item in snapshot.children {
let snap = item as! DataSnapshot
let imageSnap = snap.childSnapshot(forPath: "image/storage")
if let url = imageSnap.value as? String {
let someRef = self.storageRef.reference(forURL: url)
someRef.getData(maxSize: 10 * 10024 * 10024) { data, error in
if let error = error {
print(error)
} else {
let image = UIImage(data: data!)
self.imageArray.append(image!)
self.collectionView?.reloadData()
}
}
}
}
}
}
正如我所说,代码工作正常,但我希望图像每次都以相同的顺序显示,并且与它们存储在存储/数据库中的顺序相同。我尝试将 url 常量附加到一个空数组并打印它,这个数组按我想要的顺序打印存储 url。然而,当图像本身附加到 imageArray 时,似乎会发生一些事情。
解决方案
推荐阅读
- python - 用于匹配以“ho”开头的 3 个或 4 个或 5 个字母单词的正则表达式,但不包括小时中的 hou
- python - 将函数作为参数传递:Python
- php - PHP 丢失会话
- google-cloud-platform - 如何在数据融合中使用正则表达式拆分过滤器?
- python - 如何实现 .ui 文件以使用 fbs 打包 PyQt5 应用程序?
- python - 在python中绘制幂函数但图形为空白
- json - 未处理的异常:“字符串”类型不是“列表”类型的子类型
' - python - 当我在 python 中使用类时,代码可以工作,但 linter 在带有红色标记的代码中显示错误
- java - 如何避免鼠标焦点出现现场故障
- c# - 是否可以跟踪类的当前实例数?