@@ -166,16 +166,17 @@ - (void)signInWithProviderUI:(id<FUIAuthProvider>)providerUI
166166 [presentingViewController isKindOfClass: [FUIAuthPickerViewController class ]];
167167 if (error) {
168168 if (!isAuthPickerShown || error.code != FUIAuthErrorCodeUserCancelledSignIn) {
169- [self invokeResultCallbackWithUser :nil error: error];
169+ [self invokeResultCallbackWithAuthDataResult :nil error: error];
170170 }
171171 if (result) {
172172 result (nil , error);
173173 }
174174 return ;
175175 }
176176
177- [self .auth signInWithCredential: credential
178- completion: ^(FIRUser *_Nullable user, NSError *_Nullable error) {
177+ [self .auth signInAndRetrieveDataWithCredential: credential
178+ completion: ^(FIRAuthDataResult *_Nullable authResult,
179+ NSError *_Nullable error) {
179180 if (error && error.code == FIRAuthErrorCodeAccountExistsWithDifferentCredential) {
180181 NSString *email = error.userInfo [kErrorUserInfoEmailKey ];
181182 [self handleAccountLinkingForEmail: email
@@ -186,19 +187,19 @@ - (void)signInWithProviderUI:(id<FUIAuthProvider>)providerUI
186187 }
187188
188189 if (result) {
189- result (user, error);
190+ result (authResult. user , error);
190191 }
191192
192193 if (error) {
193- [self invokeResultCallbackWithUser: user error: error];
194+ [self invokeResultCallbackWithAuthDataResult: authResult error: error];
194195 } else {
195196 // Hide Auth Picker Controller which was presented modally.
196197 if (isAuthPickerShown && presentingViewController.presentingViewController ) {
197198 [presentingViewController dismissViewControllerAnimated: YES completion: ^{
198- [self invokeResultCallbackWithUser: user error: error];
199+ [self invokeResultCallbackWithAuthDataResult: authResult error: error];
199200 }];
200201 } else {
201- [self invokeResultCallbackWithUser: user error: error];
202+ [self invokeResultCallbackWithAuthDataResult: authResult error: error];
202203 }
203204 }
204205 }];
@@ -224,7 +225,7 @@ - (void)handleAccountLinkingForEmail:(NSString *)email
224225 presentingViewController: presentingViewController];
225226 } else {
226227 [presentingViewController dismissViewControllerAnimated: YES completion: ^{
227- [self invokeResultCallbackWithUser :nil error: error];
228+ [self invokeResultCallbackWithAuthDataResult :nil error: error];
228229 }];
229230 }
230231 return ;
@@ -287,29 +288,30 @@ - (void)handleAccountLinkingForEmail:(NSString *)email
287288 }
288289 return ;
289290 }
290- [self invokeResultCallbackWithUser :nil error: error];
291+ [self invokeResultCallbackWithAuthDataResult :nil error: error];
291292 return ;
292293 }
293294
294295 [self .auth signInWithCredential: credential completion: ^(FIRUser *_Nullable user,
295296 NSError *_Nullable error) {
296297 if (error) {
297- [self invokeResultCallbackWithUser :nil error: error];
298+ [self invokeResultCallbackWithAuthDataResult :nil error: error];
298299 if (result) {
299300 result (nil , error);
300301 }
301302 return ;
302303 }
303304
304- [user linkWithCredential: newCredential completion: ^(FIRUser *_Nullable user,
305- NSError *_Nullable error) {
305+ [user linkAndRetrieveDataWithCredential: newCredential
306+ completion: ^(FIRAuthDataResult *_Nullable authResult,
307+ NSError *_Nullable error) {
306308 if (result) {
307- result (user, error);
309+ result (authResult. user , error);
308310 }
309311 // Ignore any error (most likely caused by email mismatch) and treat the user as
310312 // successfully signed in.
311313 [presentingViewController dismissViewControllerAnimated: YES completion: ^{
312- [self invokeResultCallbackWithUser: user error: nil ];
314+ [self invokeResultCallbackWithAuthDataResult: authResult error: nil ];
313315 }];
314316 }];
315317 }];
@@ -322,9 +324,15 @@ - (void)handleAccountLinkingForEmail:(NSString *)email
322324
323325#pragma mark - Internal Methods
324326
325- - (void )invokeResultCallbackWithUser : (FIRUser *_Nullable)user error : (NSError *_Nullable)error {
327+ - (void )invokeResultCallbackWithAuthDataResult : (nullable FIRAuthDataResult *)authDataResult
328+ error : (nullable NSError *)error {
326329 dispatch_async (dispatch_get_main_queue (), ^{
327- [self .delegate authUI: self didSignInWithUser: user error: error];
330+ if ([self .delegate respondsToSelector: @selector (authUI:didSignInWithAuthDataResult:error: )]) {
331+ [self .delegate authUI: self didSignInWithAuthDataResult: authDataResult error: error];
332+ }
333+ if ([self .delegate respondsToSelector: @selector (authUI:didSignInWithUser:error: )]) {
334+ [self .delegate authUI: self didSignInWithUser: authDataResult.user error: error];
335+ }
328336 });
329337}
330338
0 commit comments