【发布时间】:2017-03-08 04:00:45
【问题描述】:
我正在尝试从 Firebase 存储下载 Word 文档。在模拟器上,一切都按预期工作。然而在我的设备上,我收到以下错误:
Optional(Error Domain=FIRStorageErrorDomain Code=-13000 "发生未知错误,请检查服务器响应。" UserInfo={object=26 October 2016.docx, bucket=app.appspot.com, NSLocalizedDescription=未知错误发生,请检查服务器响应。,ResponseErrorDomain=NSCocoaErrorDomain, NSFilePath=/tmp/bulletin, NSUnderlyingError=0x1702590b0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not allowed"}, ResponseErrorCode=513})
我一直在查看的其他帖子似乎没有给我一个有效的答案,我所知道的是文件权限存在问题,即使我使用的是推荐的目录 (tmp)。
这是下载文件的代码
let Ref_Bulletin = Bulletin.referenceForURL("gs:/app.appspot.com/Bulletin/\(Today.stringFromDate(NSDate())).docx")
// Create local filesystem URL
let localURL: NSURL! = NSURL(string: "file:///tmp/today.docx")
// Download to the local filesystem
let downloadTask = Ref_Bulletin.writeToFile(localURL) { (URL, error) -> Void in
if (error != nil) {
print(error.debugDescription)
// Uh-oh, an error occurred!
} else {
print("Working As Expected")
self.Web_View.loadRequest(NSURLRequest(URL: localURL))
}
那么是什么导致了这个问题,我该如何解决呢?
更新:
所以我尝试创建目录,但我被告知我没有权限,即使文档说我可以写入 tmp。
无法创建目录 Error Domain=NSCocoaErrorDomain Code=513 "您没有权限将文件 "today.docx" 保存在文件夹 "h" 中。" UserInfo={NSFilePath=/tmp/h/today.docx, NSUnderlyingError=0x1702498a0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not allowed"}}
这是创建目录的代码:
do {
try NSFileManager.defaultManager().createDirectoryAtPath(localURL.path!, withIntermediateDirectories: true, attributes: nil)
} catch let error as NSError {
NSLog("Unable to create directory \(error.debugDescription)")
}
【问题讨论】:
-
看起来是 iOS 问题:forums.developer.apple.com/thread/19844
-
@MikeMcDonald 但是你链接到我的答案说我可以写信给 tmp,我已经更新了我的问题。
-
你试过给
/Documents写信吗? -
@MikeMcDonald 刚刚试了一下,同样的错误,而且它还打印出我在尝试创建目录时没有权限。
标签: swift download firebase-storage tmp