Я пытаюсь получить несколько фотографий, загруженных в Firebase Storage, загрузив URL каждого изображения и сохранив их в своей базе данных. Всякий раз, когда мне это нужно, я могу загрузить изображение, просто загрузив URL-адрес.
Что я делаю, так это загружаю URL-адрес одновременно с их загрузкой. Проблема в том, что когда изображение только одно, оно работает нормально, но когда я загружаю 2 или более, функция downloadURL (imgURL) продолжает возвращать ноль. Все картинки правильно загружены в хранилище, что означает, что функция putData () каждый раз работает нормально. Тогда мне интересно, почему это происходит? Спасибо
for i in 0..<imageData.count {
let imageName = NSUUID().uuidString
let imgRef = storageRef.child("Posts Pictures/\(userID)/\(postID)/\(imageName).jpg")
imgRef.putData(imageData[i], metadata: nil, completion: { (metadata, error) in
if error != nil {
completion(false, "")
print(error!)
return
}
imgRef.downloadURL(completion: {(imgURL, error) in
if error != nil {
// This is where it crashes
print(error!)
completion(false, "")
return
}
let url = ["imageURL\(i)": imgURL?.absoluteString]
postImages.updateChildValues(url as [AnyHashable : Any], withCompletionBlock: {(err, ref) in
if err != nil {
print(err!)
completion(false, "")
return
}
completion(true, "")
})
})
})
})
}