Skip to content

Commit d04d522

Browse files
authored
Tolerate nested JSON objects while getting URL (#10370)
1 parent 10bd3b2 commit d04d522

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

FirebaseStorage/Sources/Internal/StorageGetDownloadURLTask.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ internal class StorageGetDownloadURLTask: StorageTask, StorageTaskManagement {
6767
} else {
6868
if let data = data,
6969
let responseDictionary = try? JSONSerialization
70-
.jsonObject(with: data) as? [String: String] {
70+
.jsonObject(with: data) as? [String: Any] {
7171
downloadURL = strongSelf.downloadURLFromMetadataDictionary(responseDictionary)
7272
if downloadURL == nil {
7373
self.error = NSError(domain: StorageErrorDomain,
@@ -92,15 +92,15 @@ internal class StorageGetDownloadURLTask: StorageTask, StorageTaskManagement {
9292
}
9393
}
9494

95-
internal func downloadURLFromMetadataDictionary(_ dictionary: [String: String]) -> URL? {
95+
internal func downloadURLFromMetadataDictionary(_ dictionary: [String: Any]) -> URL? {
9696
let downloadTokens = dictionary["downloadTokens"]
97-
guard let downloadTokens = downloadTokens,
97+
guard let downloadTokens = downloadTokens as? String,
9898
downloadTokens.count > 0 else {
9999
return nil
100100
}
101101
let downloadTokenArray = downloadTokens.components(separatedBy: ",")
102102
let bucket = dictionary["bucket"] ?? "<error: missing bucket>"
103-
let path = dictionary["name"] ?? "<error: missing path name>"
103+
let path = dictionary["name"] as? String ?? "<error: missing path name>"
104104
let fullPath = "/v0/b/\(bucket)/o/\(StorageUtils.GCSEscapedString(path))"
105105
var components = URLComponents()
106106
components.scheme = reference.storage.scheme

0 commit comments

Comments
 (0)