Ошибка загрузки изображения в хранилище Firebase - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь загрузить изображение в хранилище Firebase, но по какой-то причине это не удается.Когда я пытаюсь загрузить консоль, печатает повторяющуюся ошибку, см. Ниже:

2018-12-05 20: 00: 25.691278-0700 AppName [47183: 10835564] [BoringSSL] boringssl_session_errorlog (236) [C4.1: 2] [0x159ef2a60] [boringssl_session_write] SSL_ERROR_SYSCALL (5): внешне не удалось выполнить операцию для библиотеки 2018-12-05 20: 00: 25.693021-0700 AppName [47183: 10835564] [BoringSSL] boringssl_session_errorlog (236).1: 2] [0x159ef2a60] [boringssl_session_write] SSL_ERROR_SYSCALL (5): внешне не удалось выполнить операцию в библиотеке 2018-12-05 20: 00: 25.697283-0700 AppName [47183: 10835564] [BoringSSL] boringssl_session_errorlog (236): 2] [0x159ef2a60] [boringssl_session_write] SSL_ERROR_SYSCALL (5): внешне не удалось выполнить операцию для библиотеки

Мой код выглядит следующим образом:

func uploadImage(_ image: UIImage){
    let storage = Storage.storage()
    let storageRef = storage.reference()
    let imageRef = storageRef.child("images")

    if let data: Data = image.pngData() {
        imageRef.putData(data, metadata: nil)
    }

}

Я не уверен, чтопроисходит или что именно ошибка.Спасибо за любую помощь.

Ответы [ 2 ]

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

попробуйте это

fileprivate lazy var storageRef: StorageReference = Storage.storage().reference(forURL: "gs://fir-chat-80ed9.appspot.com")

func imagePickerController(_ picker: UIImagePickerController,
                                   didFinishPickingMediaWithInfo info: [String : Any]) {
            let image = info[UIImagePickerControllerOriginalImage] as! UIImage

            if let key = sendPhotoMessage() {
    //            let data = UIImagePNGRepresentation(image)!
                let data = UIImageJPEGRepresentation(image, 0.1)!
                let fileManager = FileManager.default;
                let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("file.png")
                do {
                    if(fileManager.fileExists(atPath: url.path)) {
                        try fileManager.removeItem(at: url)
                    }
                    try data.write(to: url)
                }
                catch let error {
                    print(error)
                }
                let path = "\(Auth.auth().currentUser!.uid)/\(Int(Date.timeIntervalSinceReferenceDate * 1000))/\(Int(Date.timeIntervalSinceReferenceDate * 1000)).png"
                storageRef.child(path).putFile(from: url, metadata: nil, completion: { (metadata, error) in
                    if let error = error {
                        print("Error uploading photo: \(error.localizedDescription)")
                        return
                    }
                    // 7
                    self.setImageURL(self.storageRef.child((metadata!.path)!).description, forPhotoMessageWithKey: key)
                })
            }
            picker.dismiss(animated: true, completion:nil)
    }

https://github.com/vshalvaghasiya/FireBaseChat

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

попробуй:

func uploadPhoto(picture:UIImage?) {
    if let img = picture, let data = UIImageJPEGRepresentation(img, 1){
        let path = "\(NSDate.timeIntervalSinceReferenceDate)" // name of image
        let metaData = StorageMetadata()
        metaData.contentType = "image/jpg"
        let ref = Storage.storage().reference().child("images").child(path)
        ref.putData(data, metadata: metaData) { (mData, error) in
            if error == nil{
                ref.downloadURL(completion: { (url, error) in
                    if error == nil{
                        print(url?.absoluteString)
                    }
                })
            }
        }
    }
}
...