Not able to upload Images on to Google Firebase Storage using iOS Swift API

只愿长相守 提交于 2019-12-11 08:43:43

问题


Earlier i was able to upload Images onto Google Firebase Strage. but suddenly it's not working.

Below is the code:

private func uploadEmergencyImages(images: [Int: URL], emergencyId: String){
    let imagesRef = Storage.storage().reference().child("incidents").child(emergencyId).child("images")

    if(!images.isEmpty){
        for (key, value) in images {
            print("Image to be Uploaded = \(value.absoluteString)")

            let imageData = try! Data(contentsOf: value)
            //                let image = UIImage(data: imageData)

            let metaData = StorageMetadata()
            metaData.contentType = "image/png"
            imagesRef.child("Image_\(key+1).png").putData(imageData, metadata: metaData) { (storageMetaData, storageError) in
                if(storageError != nil){
                    print("Error - While uploading Image:: \(storageError.debugDescription)")
                }else{
                    print("Upload completed...")
                }
            }
        }
    }
}

Below is the Error message (NOTE: Here i have masked my firebasePrjName with 'XXX' for this post.)

2018-08-23 20:25:54.758092+0300 XXX[44855:1058133] [AXRun-PID] Client requesting unsuspension of PID:44870 Name: 2018-08-23 20:25:55.833590+0300 XXX[44855:1057851] [AXRun-PID] Client requesting unsuspension of PID:44870 Name: 2018-08-23 20:25:57.512286+0300 XXX[44855:1057987] [discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled} New Incident Key = -LKboaL9nTohkCHuYp1U Image to be Uploaded = file:///Users/macbookpro/Library/Developer/CoreSimulator/Devices/863EEA6A-F1F5-4A6C-B19B-D686D81486F4/data/Containers/Data/Application/F0D6F426-EE5E-4B45-8D1F-3B880C049DF3/tmp/39F05E90-3F8F-4A40-84CB-1931D1E9C7CA.jpeg 2018-08-23 20:26:07.359567+0300 XXX[44855:1058132] TIC TCP Conn Failed [4:0x60400036ffc0]: 3:-9802 Err(-9802) 2018-08-23 20:26:07.360138+0300 XXX[44855:1058132] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) 2018-08-23 20:26:07.360235+0300 XXX[44855:1058132] Task .<1> HTTP load failed (error code: -1200 [3:-9802]) 2018-08-23 20:26:07.360437+0300 XXX[44855:1057735] Task .<1> finished with error - code: -1200 Error - While uploading Image:: Optional(Error Domain=FIRStorageErrorDomain Code=-13000 "An unknown error occurred, please check the server response." UserInfo={NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, NSLocalizedDescription=An unknown error occurred, please check the server response., _kCFStreamErrorDomainKey=3, NSErrorPeerCertificateChainKey=( "", "" ), NSErrorClientCertificateStateKey=0, NSErrorFailingURLKey=https://firebasestorage.googleapis.com/v0/b/XXX-ots.appspot.com/o/incidents%2F-LKboaL9nTohkCHuYp1U%2Fimages%2FImage_1.png?uploadType=resumable&name=incidents%2F-LKboaL9nTohkCHuYp1U%2Fimages%2FImage_1.png, NSErrorFailingURLStringKey=https://firebasestorage.googleapis.com/v0/b/XXX-ots.appspot.com/o/incidents%2F-LKboaL9nTohkCHuYp1U%2Fimages%2FImage_1.png?uploadType=resumable&name=incidents%2F-LKboaL9nTohkCHuYp1U%2Fimages%2FImage_1.png, NSUnderlyingError=0x600000647290 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, kCFStreamPropertySSLPeerTrust=, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, kCFStreamPropertySSLPeerCertificates=( "", "" )}}, _kCFStreamErrorCodeKey=-9802, object=incidents/-LKboaL9nTohkCHuYp1U/images/Image_1.png, ResponseErrorDomain=NSURLErrorDomain, bucket=XXX-ots.appspot.com, NSURLErrorFailingURLPeerTrustErrorKey=, ResponseErrorCode=-1200})

I had tried to modify my info.plist file as below also, but it did not work:

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

Any lead is highly appreciated.


回答1:


This is working for me (swift 4 Code)

let storageRef = DBProvider.Instance.imageStorageRef.child(user!.uid) // Put Here your Storage Referance  
let imageData = UIImageJPEGRepresentation(youimagehere, 1.0) // put your image Here

storageRef.putData(imageData!, metadata: nil, completion: { (metadata, error) in

    if error == nil
    {
        let path = metadata?.downloadURL()?.absoluteString
        print(path)
    }
})

Make sure you have enabled firebase storage read, write Permission from your Firebase project.



来源:https://stackoverflow.com/questions/51998979/not-able-to-upload-images-on-to-google-firebase-storage-using-ios-swift-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!