早些时候,我能够将图片上传到 Google Firebase Strage。但突然它不工作了。
代码如下:
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...")
}
}
}
}
}
下面是错误消息(注意:我在这篇文章中用“XXX”屏蔽了我的 firebasePrjName。)
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})
我也曾尝试修改我的 info.plist
文件,但没有成功:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
非常感谢任何线索。
最佳答案
这对我有用 (swift 4 代码)
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)
}
})
确保您已从您的 Firebase 项目启用 firebase 存储读、写权限。
关于ios - 无法使用 iOS Swift API 将图片上传到 Google Firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998979/