, так как наблюдайте, чтоSensEvent выполняется асинхронно, функция печати вызывается перед завершением наблюдения.Вы можете исправить это так, используйте закрытие
var images:[UIImage] = []
override func viewDidLoad() {
super.viewDidLoad()
ref = Database.database().reference()
retrieveImage {
print(self.images)
}
}
func retrieveImage(_ completion: () -> Void){
let userID = Auth.auth().currentUser?.uid
ref.child("Images").observeSingleEvent(of: .value, with: { (snapshot) in
let userImage = snapshot.value as? NSDictionary
let imageURLArray = userImage?.allKeys
if userImage != nil{
for index in 0...userImage!.count-1{
let imageProfile = userImage![imageURLArray?[index]] as? NSDictionary
let imageURL = imageProfile!["url"]
let storageRef = Storage.storage().reference(forURL: imageURL as! String)
storageRef.getData(maxSize: 1 * 1024 * 1024) { data, error in
if let error = error {
print(error.localizedDescription)
} else {
let image = UIImage(data: data!)
self.images.append(image!)
}
}
}
}
completion()
}) { (error) in
print(error.localizedDescription)
completion()
}
}