В настоящее время ничего не происходит, когда я прикасаюсь к кнопке, которая переводит меня в другой ВК, который должен получить изображение из firebase, а затем отображать его в виде изображения на ВК после нажатия кнопки с именем loadImageFunc
Что не так в моем коде? Я не получаю ошибок. Это просто не работает.
import UIKit
import FirebaseStorage
import FirebaseDatabase
import FirebaseAuth
import Firebase
class PhaseOneViewController: UIViewController {
@IBOutlet weak var p1ImageView: UIImageView!
@IBAction func loadImages(_ sender: Any) {
self.downloadImages(folderPath: "\(Storage.storage().reference().child((Auth.auth().currentUser?.uid)!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)").child(ImageUploadManager().imageName))", success: { (img) in
self.p1ImageView.image = img
print(img)
}) { (error) in
print("here is errorrrrrrrrrrr", error)
}
}
func downloadImages(folderPath:String,success:@escaping (_ image:UIImage)->(),failure:@escaping (_ error:Error)->()){
// for i in 0 ..< 194 {
// Create a reference with an initial file path and name
let reference = Storage.storage().reference().child((Auth.auth().currentUser?.uid)!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)").child(ImageUploadManager().imageName)
reference.getData(maxSize: (3 * 1024 * 1024)) { (data, error) in
if let _error = error { //code fails here and prints the error
print(_error)
failure(_error)
} else {
if let _data = data {
let myImage:UIImage! = UIImage(data: _data)
success(myImage)
self.p1ImageView.image = myImage
}
}
}
//}
}
}
После ответа на приведенный ниже ответ я выяснил, что блок if else с данными никогда не возникает, потому что код завершается с ошибкой в строке, указанной выше (первая часть оператора if). Это приводит к ошибке ниже
Domain = FIRStorageErrorDomain Code = -13010 "Объект DOFoO2mCg7bnZcbIdT7SFafquB3 / post1 / 153555392.86284.jpg не существует." UserInfo = {Объект = DOFoO2mCg7bnZcbIdT7SFafFquB3 / post1 / 1535515392.86284.jpg, ResponseBody = NoSuchKey
Указанный ключ не exist.No такого объекта: practicearraybasicimg1.appspot.com/DOFoO2Cg7bnZcbIdT7SFafFquB3/post1/1535515392.86284.jpg, ведро = practicearraybasicimg1.appspot.com данные =
Обновление : Я также попытался установить свои права на чтение и запись для следующих элементов в хранилище , как указано в ответе ниже. Однако никаких изменений не было.
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write ;
}
}
}
Обновление : Я попробовал следующий код:
override func viewDidLoad() {
super.viewDidLoad()
database = Database.database()
storage = Storage.storage()
let dbRef = database.reference().child("Posts").child(uid!).child("post\(takePicViewController().finalPost + PhotoArray.sharedInstance.numberPost)")
dbRef.observe(.childAdded, withchildAdded: { (snapshot) in
// Get download URL from snapshot
let downloadURLsnapshot;.value() as! String
// Create a storage reference from the URL
let storageRef = storage.referenceFromURL(downloadURL)
// Download the data, assuming a max size of 1MB (you can change this as necessary)
storageRef.dataWithMaxSize(1 * 1024 * 1024) { (data, error) -> Void in
// Create a UIImage, add it to the array
let pic = UIImage(data: data)
picArray.append(pic)
};
})
}
@IBAction func loadImages(_ sender: Any) {
for image in picArray {
self.p1ImageView.image = image
}
}
Но я получаю это:
Метки аргументов '(_ :, withchildAdded :)' не соответствуют никаким доступным перегрузкам
На линии, которая идет dbRef.observe
...