Uiimageview Ничего не показано после получения изображения - PullRequest
0 голосов
/ 24 декабря 2018

Привет, ребята, я новичок в Xcode.Я пытаюсь получить изображение, которое хранится в базе данных.Но когда я пытаюсь поставить код, он ничего не показывает.Я пытаюсь напечатать изображение, его ноль.Всего много, но я не понимаю каждого из них.

func loadUserDetail(){

    ref = Database.database().reference()
    imgStorage = Storage.storage().reference()

    let userID = Auth.auth().currentUser?.uid
    ref.child("User").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
        // Get user value
        let value = snapshot.value as? NSDictionary
        let username = value?["name"] as? String ?? ""
        let email = value?["email"] as? String ?? ""
        let address = value?["address"] as? String ?? ""
        let image = value?["image"] as? String ?? ""
        let phone = value?["phone"] as? String ?? ""
        let user = User(name: username, email: email, address: address, image : image, phone : phone)

        self.fullnameTF.text = user.name
        self.emailTF.text = user.email
        self.PhoneTF.text = user.phone

        let storageRef = self.imgStorage.child("User/\(userID!)/UserPic")
        storageRef.getData(maxSize: 1 * 1024 * 1024) { data, error in
            if let error = error {
                print("error: \(error.localizedDescription)")
            } else {
                let image = UIImage(data: data!)
                self.imgProfilePicture.image = image
            }
        }




    }) { (error) in
        print(error.localizedDescription)
    }

}

Мне кажется, проблема в том, что когда я загружаю изображение, полученное с помощью средства выбора, его показ имеет 0 КБ.

 let fileData = NSData() // get data...
        let storageRef = self.imgStorage.child("User/\(userUiD!)/UserPic")
        storageRef.putData(fileData as Data).observe(.success) { (snapshot) in
            // When the image has successfully uploaded, we get it's download URL
            storageRef.downloadURL(completion: { (url, error) in
                if (error == nil) {
                    if let downloadUrl = url {
                        // Make you download string
                        let downloadString = downloadUrl.absoluteString

                         self.ref.child("User").child(userUiD!).child("image").setValue(downloadString)

                    }
                } else {
                   print("Error To Saved")
                }
            })



        }

    }

1 Ответ

0 голосов
/ 24 декабря 2018

вы должны заменить let fileData = NSData() данными изображения.NSData () создает только пустой объект данных с 0 КБ, поэтому вы должны преобразовать ваше изображение в данные вроде:

 var fileData = UIImagePNGRepresentation(image)  // image is UIImage which you get from Picker

or 

 var fileData = UIImageJPEGRepresentation(image, 0.7) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...