我在FIRStorageReference
上寫了一個Swift擴展來檢測文件是否存在。我打電話給metadataWithCompletion()
。如果完成塊的可選NSError
沒有設置,我認爲假定文件存在是安全的。如何檢測Firebase存儲文件是否存在?
如果NSError設置,無論是出事了,或者文件不存在。 storage documentation on handling errors in iOS指出FIRStorageErrorCodeObjectNotFound
是我應該檢查的錯誤類型,但是不能解析(可能Swiftified爲更短的.Name樣式的常量?),我不確定我應該檢查它。
我想completion(nil, false)
如果FIRStorageErrorCodeObjectNotFound
設置的地方被調用。
這是我的代碼到目前爲止。
extension FIRStorageReference {
func exists(completion: (NSError?, Bool?) ->()) {
metadataWithCompletion() { metadata, error in
if let error = error {
print("Error: \(error.localizedDescription)")
print("Error.code: \(error.code)")
// This is where I'd expect to be checking something.
completion(error, nil)
return
} else {
completion(nil, true)
}
}
}
}
非常感謝提前。
我們故意沒有建立一個「對象存在性檢查」,因爲我們的身影檢查錯誤對象get或元數據獲取的'FIRStorageErrorCodeObjectNotFound'的代碼已經足夠好了。你可以給我一個背後的理由,說明爲什麼你需要這個功能,而不是僅僅做對象/元數據獲取,如果沒有找到想要的對象,處理錯誤? –
獲取元數據是一種很好的方法,我現在不確定的是我是如何確定發生了哪種錯誤的。在我的代碼中,我將如何處理這個NSError對象,如果沒有錯誤對象,是否可以安全地假定文件存在?謝謝。 –