Skip to content

Commit 3701a66

Browse files
authored
Fix non-main thread callback issue (#13371)
1 parent 7a640ac commit 3701a66

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

FirebaseStorage/Sources/Internal/StorageInternalTask.swift

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,18 @@ class StorageInternalTask: StorageTask {
4747
self.fetcher = fetcher
4848

4949
Task {
50+
let callbackQueue = reference.storage.fetcherService != nil ?
51+
reference.storage.fetcherServiceForApp.callbackQueue : DispatchQueue.main
5052
do {
5153
let data = try await self.fetcher?.beginFetch()
52-
completion?(data, nil)
54+
callbackQueue?.async {
55+
completion?(data, nil)
56+
}
5357
} catch {
54-
completion?(nil, StorageErrorCode.error(withServerError: error as NSError,
55-
ref: self.reference))
58+
callbackQueue?.async {
59+
completion?(nil, StorageErrorCode.error(withServerError: error as NSError,
60+
ref: self.reference))
61+
}
5662
}
5763
}
5864
}

FirebaseStorage/Sources/Storage.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ import FirebaseCore
266266

267267
// MARK: - Internal and Private APIs
268268

269-
private var fetcherService: GTMSessionFetcherService?
269+
var fetcherService: GTMSessionFetcherService?
270270

271271
var fetcherServiceForApp: GTMSessionFetcherService {
272272
guard let value = fetcherService else {

0 commit comments

Comments
 (0)