From 9db41632faeaba731b77dbe920ea3bb8c195b37c Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Fri, 7 Jun 2024 10:08:18 +0200 Subject: [PATCH] fix(auth, ios): fix the parsing of an error that could specifically happen when using MicrosoftProvider --- .../ios/Classes/FLTFirebaseAuthPlugin.m | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/firebase_auth/firebase_auth/ios/Classes/FLTFirebaseAuthPlugin.m b/packages/firebase_auth/firebase_auth/ios/Classes/FLTFirebaseAuthPlugin.m index fc2464b39a00..54af42785f97 100644 --- a/packages/firebase_auth/firebase_auth/ios/Classes/FLTFirebaseAuthPlugin.m +++ b/packages/firebase_auth/firebase_auth/ios/Classes/FLTFirebaseAuthPlugin.m @@ -595,7 +595,24 @@ static void handleAppleAuthResult(FLTFirebaseAuthPlugin *object, AuthPigeonFireb underlyingError.userInfo[@"FIRAuthErrorUserInfoDes" @"erializedResponseKey"]; - if (firebaseDictionary != nil && firebaseDictionary[@"message"] != nil) { + if (firebaseDictionary == nil && + userInfo[@"FIRAuthErrorUserInfoNameKey"] != nil) { + // Removing since it's not parsed and causing issue when sending back the + // object to Flutter + NSMutableDictionary *mutableUserInfo = [userInfo mutableCopy]; + [mutableUserInfo + removeObjectForKey:@"FIRAuthErrorUserInfoUpdatedCredentialKey"]; + NSError *modifiedError = [NSError errorWithDomain:error.domain + code:error.code + userInfo:mutableUserInfo]; + + completion(nil, + [FlutterError errorWithCode:@"sign-in-failed" + message:userInfo[@"NSLocalizedDescription"] + details:modifiedError.userInfo]); + + } else if (firebaseDictionary != nil && + firebaseDictionary[@"message"] != nil) { // error from firebase-ios-sdk is // buried in underlying error. completion(nil,