Skip to content

Commit 8d1305d

Browse files
authored
[Functions] Address more Swift 6 warnings (#14772)
1 parent 5659604 commit 8d1305d

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

FirebaseFunctions/Sources/Functions.swift

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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 {

FirebaseFunctions/Sources/Internal/FunctionsSerializer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ extension FunctionsSerializer {
2828
}
2929
}
3030

31-
final class FunctionsSerializer {
31+
final class FunctionsSerializer: Sendable {
3232
// MARK: - Internal APIs
3333

3434
func encode(_ object: Any) throws -> Any {

0 commit comments

Comments
 (0)