@@ -170,12 +170,13 @@ public final class AuthService {
170170 if let phoneProvider = provider as? PhoneAuthProviderSwift {
171171 phoneProvider. authService = self
172172 }
173-
173+
174174 let credential = try await provider. createAuthCredential ( )
175175 let result = try await signIn ( credentials: credential)
176176 return result
177177 } catch {
178- updateError ( message: string. localizedErrorMessage ( for: error) )
178+ // Always pass the underlying error - view decides what to show
179+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError: error)
179180 throw error
180181 }
181182 }
@@ -206,8 +207,8 @@ public final class AuthService {
206207 currentError = nil
207208 }
208209
209- func updateError( title: String = " Error " , message: String ) {
210- currentError = AlertError ( title: title, message: message)
210+ func updateError( title: String = " Error " , message: String , underlyingError : Error ? = nil ) {
211+ currentError = AlertError ( title: title, message: message, underlyingError : underlyingError )
211212 }
212213
213214 public var shouldHandleAnonymousUpgrade : Bool {
@@ -221,7 +222,7 @@ public final class AuthService {
221222 currentUser = nil
222223 updateAuthenticationState ( )
223224 } catch {
224- updateError ( message: string. localizedErrorMessage ( for: error) )
225+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
225226 throw error
226227 }
227228 }
@@ -239,7 +240,7 @@ public final class AuthService {
239240 updateAuthenticationState ( )
240241 } catch {
241242 authenticationState = . unauthenticated
242- updateError ( message: string. localizedErrorMessage ( for: error) )
243+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
243244 throw error
244245 }
245246 }
@@ -303,7 +304,7 @@ public final class AuthService {
303304 }
304305 } else {
305306 // Don't want error modal on MFA error so we only update here
306- updateError ( message: string. localizedErrorMessage ( for: error) )
307+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
307308 }
308309
309310 throw error
@@ -325,7 +326,7 @@ public final class AuthService {
325326 }
326327 }
327328 } catch {
328- updateError ( message: string. localizedErrorMessage ( for: error) )
329+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
329330 throw error
330331 }
331332 }
@@ -344,7 +345,7 @@ public extension AuthService {
344345 try await user. delete ( )
345346 }
346347 } catch {
347- updateError ( message: string. localizedErrorMessage ( for: error) )
348+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
348349 throw error
349350 }
350351 }
@@ -359,7 +360,7 @@ public extension AuthService {
359360 try await user. updatePassword ( to: password)
360361 }
361362 } catch {
362- updateError ( message: string. localizedErrorMessage ( for: error) )
363+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
363364 throw error
364365 }
365366 }
@@ -392,7 +393,7 @@ public extension AuthService {
392393 }
393394 } catch {
394395 authenticationState = . unauthenticated
395- updateError ( message: string. localizedErrorMessage ( for: error) )
396+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
396397 throw error
397398 }
398399 }
@@ -401,7 +402,7 @@ public extension AuthService {
401402 do {
402403 try await auth. sendPasswordReset ( withEmail: email)
403404 } catch {
404- updateError ( message: string. localizedErrorMessage ( for: error) )
405+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
405406 throw error
406407 }
407408 }
@@ -418,7 +419,7 @@ public extension AuthService {
418419 actionCodeSettings: actionCodeSettings
419420 )
420421 } catch {
421- updateError ( message: string. localizedErrorMessage ( for: error) )
422+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
422423 throw error
423424 }
424425 }
@@ -451,7 +452,7 @@ public extension AuthService {
451452 emailLink = nil
452453 }
453454 } catch {
454- updateError ( message: string. localizedErrorMessage ( for: error) )
455+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
455456 throw error
456457 }
457458 }
@@ -520,7 +521,7 @@ public extension AuthService {
520521 changeRequest. photoURL = url
521522 try await changeRequest. commitChanges ( )
522523 } catch {
523- updateError ( message: string. localizedErrorMessage ( for: error) )
524+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
524525 throw error
525526 }
526527 }
@@ -535,7 +536,7 @@ public extension AuthService {
535536 changeRequest. displayName = name
536537 try await changeRequest. commitChanges ( )
537538 } catch {
538- updateError ( message: string. localizedErrorMessage ( for: error) )
539+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
539540 throw error
540541 }
541542 }
@@ -627,7 +628,7 @@ public extension AuthService {
627628 )
628629 }
629630 } catch {
630- updateError ( message: string. localizedErrorMessage ( for: error) )
631+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
631632 throw error
632633 }
633634 }
@@ -679,7 +680,7 @@ public extension AuthService {
679680
680681 return verificationID
681682 } catch {
682- updateError ( message: string. localizedErrorMessage ( for: error) )
683+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
683684 throw error
684685 }
685686 }
@@ -758,7 +759,7 @@ public extension AuthService {
758759 }
759760 currentUser = auth. currentUser
760761 } catch {
761- updateError ( message: string. localizedErrorMessage ( for: error) )
762+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
762763 throw error
763764 }
764765 }
@@ -847,7 +848,7 @@ public extension AuthService {
847848
848849 return freshFactors
849850 } catch {
850- updateError ( message: string. localizedErrorMessage ( for: error) )
851+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
851852 throw error
852853 }
853854 }
@@ -917,7 +918,7 @@ public extension AuthService {
917918 }
918919 }
919920 } catch {
920- updateError ( message: string. localizedErrorMessage ( for: error) )
921+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
921922 throw error
922923 }
923924 }
@@ -970,7 +971,7 @@ public extension AuthService {
970971 . multiFactorAuth ( " Failed to resolve MFA challenge: \( error. localizedDescription) " )
971972 }
972973 } catch {
973- updateError ( message: string. localizedErrorMessage ( for: error) )
974+ updateError ( message: string. localizedErrorMessage ( for: error) , underlyingError : error )
974975 throw error
975976 }
976977 }
0 commit comments