В моей базе данных Firebase у меня есть несколько предметов, которые имеют имя и изображение каждый. В моем приложении я хотел бы отобразить указанные параметры в виде коллекции с изображением и меткой в каждой ячейке. Я могу отображать каждое название элемента в метке, и я также могу отображать изображение элементов в окне просмотра изображений, однако изображения, загруженные из firebase, продолжают появляться в случайном порядке каждый раз. Ярлыки показывают названия предметов в правильном фиксированном порядке каждый раз. У каждого элемента есть дочерний элемент с именем «image», а дочерний элемент с именем «storage», в котором хранится URL-адрес изображения из хранилища Firebase. Код для загрузки изображений:
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-адреса хранилища в нужном мне порядке. Однако, похоже, что-то происходит, когда сами изображения добавляются в массив изображений.