@@ -436,13 +436,15 @@ enum FunctionsConstants {
436436 withObject data: Any ? ,
437437 options: HTTPSCallableOptions ? ,
438438 timeout: TimeInterval ,
439- completion: @escaping ( ( Result < HTTPSCallableResult , Error > ) -> Void ) ) {
439+ completion: @escaping @ MainActor ( Result < HTTPSCallableResult , Error > ) -> Void ) {
440440 // Get context first.
441441 contextProvider. getContext ( options: options) { context, error in
442442 // Note: context is always non-nil since some checks could succeed, we're only failing if
443443 // there's an error.
444444 if let error {
445- completion ( . failure( error) )
445+ DispatchQueue . main. async {
446+ completion ( . failure( error) )
447+ }
446448 } else {
447449 self . callFunction ( url: url,
448450 withObject: data,
@@ -459,7 +461,7 @@ enum FunctionsConstants {
459461 options: HTTPSCallableOptions ? ,
460462 timeout: TimeInterval ,
461463 context: FunctionsContext ,
462- completion: @escaping ( ( Result < HTTPSCallableResult , Error > ) -> Void ) ) {
464+ completion: @escaping @ MainActor ( Result < HTTPSCallableResult , Error > ) -> Void ) {
463465 let fetcher : GTMSessionFetcher
464466 do {
465467 fetcher = try makeFetcher (
@@ -762,7 +764,7 @@ enum FunctionsConstants {
762764 }
763765
764766 private func callableResult( fromResponseData data: Data ,
765- endpointURL url: URL ) throws -> HTTPSCallableResult {
767+ endpointURL url: URL ) throws -> sending HTTPSCallableResult {
766768 let processedData = try processedData ( fromResponseData: data, endpointURL: url)
767769 let json = try responseDataJSON ( from: processedData)
768770 let payload = try serializer. decode ( json)
@@ -784,7 +786,7 @@ enum FunctionsConstants {
784786 return data
785787 }
786788
787- private func responseDataJSON( from data: Data ) throws -> Any {
789+ private func responseDataJSON( from data: Data ) throws -> sending Any {
788790 let responseJSONObject = try JSONSerialization . jsonObject ( with: data)
789791
790792 guard let responseJSON = responseJSONObject as? NSDictionary else {
0 commit comments