Skip to content

Commit 61fa60f

Browse files
authored
[Auth] Address Xcode 26 warnings in Auth (#14996)
1 parent 9569bd9 commit 61fa60f

File tree

3 files changed

+48
-40
lines changed

3 files changed

+48
-40
lines changed

FirebaseAuth/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# 11.15.0
2+
- [fixed] Fixed `Sendable` warnings introduced in the Xcode 26 beta. (#14996)
3+
14
# 11.14.0
25
- [fixed] Synchronize internal `AuthKeychainServices` class to prevent
36
crashes from concurrent access. (#14835)

FirebaseAuth/Sources/Swift/Auth/Auth.swift

Lines changed: 41 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -863,29 +863,41 @@ extension Auth: AuthInterop {
863863
displayName: nil,
864864
idToken: nil,
865865
requestConfiguration: self.requestConfiguration)
866-
867866
#if os(iOS)
868-
self.wrapInjectRecaptcha(request: request,
869-
action: AuthRecaptchaAction.signUpPassword) { response, error in
870-
if let error {
867+
Task {
868+
do {
869+
let response = try await self.injectRecaptcha(
870+
request: request,
871+
action: AuthRecaptchaAction.signUpPassword
872+
)
873+
self.internalCreateUserWithEmail(
874+
request: request,
875+
inResponse: response,
876+
decoratedCallback: decoratedCallback
877+
)
878+
} catch {
871879
DispatchQueue.main.async {
872880
decoratedCallback(.failure(error))
873881
}
874882
return
875883
}
876-
self.internalCreateUserWithEmail(request: request, inResponse: response,
877-
decoratedCallback: decoratedCallback)
878884
}
879885
#else
880-
self.internalCreateUserWithEmail(request: request, decoratedCallback: decoratedCallback)
886+
self.internalCreateUserWithEmail(
887+
request: request,
888+
decoratedCallback: decoratedCallback
889+
)
881890
#endif
882891
}
883892
}
884893

885-
func internalCreateUserWithEmail(request: SignUpNewUserRequest,
886-
inResponse: SignUpNewUserResponse? = nil,
887-
decoratedCallback: @escaping (Result<AuthDataResult, Error>)
888-
-> Void) {
894+
private func internalCreateUserWithEmail(request: SignUpNewUserRequest,
895+
inResponse: SignUpNewUserResponse? = nil,
896+
decoratedCallback: @escaping (Result<
897+
AuthDataResult,
898+
Error
899+
>)
900+
-> Void) {
889901
Task {
890902
do {
891903
var response: SignUpNewUserResponse
@@ -1161,12 +1173,15 @@ extension Auth: AuthInterop {
11611173
requestConfiguration: self.requestConfiguration
11621174
)
11631175
#if os(iOS)
1164-
self.wrapInjectRecaptcha(request: request,
1165-
action: AuthRecaptchaAction.getOobCode) { result, error in
1166-
if let completion {
1167-
DispatchQueue.main.async {
1168-
completion(error)
1169-
}
1176+
Task {
1177+
do {
1178+
_ = try await self.injectRecaptcha(
1179+
request: request,
1180+
action: AuthRecaptchaAction.getOobCode
1181+
)
1182+
Auth.wrapMainAsync(completion, nil)
1183+
} catch {
1184+
Auth.wrapMainAsync(completion, error)
11701185
}
11711186
}
11721187
#else
@@ -1234,12 +1249,15 @@ extension Auth: AuthInterop {
12341249
requestConfiguration: self.requestConfiguration
12351250
)
12361251
#if os(iOS)
1237-
self.wrapInjectRecaptcha(request: request,
1238-
action: AuthRecaptchaAction.getOobCode) { result, error in
1239-
if let completion {
1240-
DispatchQueue.main.async {
1241-
completion(error)
1242-
}
1252+
Task {
1253+
do {
1254+
_ = try await self.injectRecaptcha(
1255+
request: request,
1256+
action: AuthRecaptchaAction.getOobCode
1257+
)
1258+
Auth.wrapMainAsync(completion, nil)
1259+
} catch {
1260+
Auth.wrapMainAsync(completion, error)
12431261
}
12441262
}
12451263
#else
@@ -2289,21 +2307,6 @@ extension Auth: AuthInterop {
22892307
}
22902308

22912309
#if os(iOS)
2292-
private func wrapInjectRecaptcha<T: AuthRPCRequest>(request: T,
2293-
action: AuthRecaptchaAction,
2294-
_ callback: @escaping (
2295-
(T.Response?, Error?) -> Void
2296-
)) {
2297-
Task {
2298-
do {
2299-
let response = try await injectRecaptcha(request: request, action: action)
2300-
callback(response, nil)
2301-
} catch {
2302-
callback(nil, error)
2303-
}
2304-
}
2305-
}
2306-
23072310
func injectRecaptcha<T: AuthRPCRequest>(request: T,
23082311
action: AuthRecaptchaAction) async throws -> T
23092312
.Response {

FirebaseAuth/Tests/Unit/Fakes/FakeBackendRPCIssuer.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,13 +153,15 @@ final class FakeBackendRPCIssuer: AuthBackendRPCIssuerProtocol, @unchecked Senda
153153
requestData = body
154154
// Use the real implementation so that the complete request can
155155
// be verified during testing.
156+
let requestURL = request.requestURL()
157+
let requestConfiguration = request.requestConfiguration()
156158
completeRequest = Task {
157159
await AuthBackend
158160
.request(
159-
for: request.requestURL(),
161+
for: requestURL,
160162
httpMethod: requestData == nil ? "GET" : "POST",
161163
contentType: contentType,
162-
requestConfiguration: request.requestConfiguration()
164+
requestConfiguration: requestConfiguration
163165
)
164166
}
165167
decodedRequest = try? JSONSerialization.jsonObject(with: body) as? [String: Any]

0 commit comments

Comments
 (0)