ImageView для хранения Firebase в Swift - PullRequest
0 голосов
/ 03 января 2019

Я пытаюсь загрузить изображение из ImageView в хранилище Firebase, но оно не будет работать.

Я перечислил свой код ниже: мой вид изображения называется ProfileImage

        let storageRef = Storage.storage().reference().child("myImage.png")
        if let uploadData = self.ProfileImage.image!.pngData() {
            storageRef.putFile(from: uploadData, metadata: nil) { (metadata, error) in
                if error != nil {
                    print("error")
                    completion(nil)
                } else {
                    // your uploaded photo url.
                }
            }
        }

Появляется ошибка "Невозможно преобразовать значение типа" Данные "в ожидаемый тип аргумента" URL "

Ответы [ 3 ]

0 голосов
/ 03 января 2019

Попробуйте этот код: -

let storageRef = Storage.storage().reference().child("myImage.png")
    if let uploadData = UIImagePNGRepresentation(self.profileImage.image!) {
        storageRef.put(uploadData, metadata: nil) { (metadata, error) in
            if error != nil {
                print("\(error.localizeDescription)")
            } else {                    
                // your uploaded photo url.
            }
       }
0 голосов
/ 03 января 2019
let refDatabase = Database.database().reference()
var refstorage = Storage.storage().reference()
let data = image.jpegData(compressionQuality: 1.0) // 
let metadata = StorageMetadata()
metadata.contentType = "image/jpeg"
let postkey = refDatabase.child("Post").childByAutoId().key
print(postkey)
let imagename = "PostImage/\(postkey).png"
refstorage = refstorage.child(imagename)
let timestamp = Date().timeIntervalSince1970 // you can use this to track time when it was uploaded. 
self.refstorage?.putData(data!, metadata: metadata, completion: { (meta, error) in

    if error == nil{
        if let imageData = meta?.downloadURL()?.absoluteString{
            // DO SOMETHING
        } else {
            print("Couldn't get the URL for image")
        }
    }
})
0 голосов
/ 03 января 2019

Вы пытаетесь загрузить данные, а не файл.Заменить

putFile

на

putData

И оно должно нормально работать

...