@@ -107,13 +107,15 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
107
107
} else if ([@" signInAnonymously" isEqualToString: call.method]) {
108
108
[[self getAuth: call.arguments]
109
109
signInAnonymouslyWithCompletion: ^(FIRAuthDataResult *authResult, NSError *error) {
110
- [self sendResult: result forUser : authResult.user error: error];
110
+ [self sendResult: result forAuthDataResult : authResult error: error];
111
111
}];
112
112
} else if ([@" signInWithCredential" isEqualToString: call.method]) {
113
113
[[self getAuth: call.arguments]
114
114
signInAndRetrieveDataWithCredential: [self getCredential: call.arguments]
115
115
completion: ^(FIRAuthDataResult *authResult, NSError *error) {
116
- [self sendResult: result forUser: authResult.user error: error];
116
+ [self sendResult: result
117
+ forAuthDataResult: authResult
118
+ error: error];
117
119
}];
118
120
} else if ([@" createUserWithEmailAndPassword" isEqualToString: call.method]) {
119
121
NSString *email = call.arguments [@" email" ];
@@ -122,7 +124,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
122
124
createUserWithEmail: email
123
125
password: password
124
126
completion: ^(FIRAuthDataResult *authResult, NSError *error) {
125
- [self sendResult: result forUser : authResult.user error: error];
127
+ [self sendResult: result forAuthDataResult : authResult error: error];
126
128
}];
127
129
} else if ([@" fetchSignInMethodsForEmail" isEqualToString: call.method]) {
128
130
NSString *email = call.arguments [@" email" ];
@@ -177,7 +179,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
177
179
signInWithEmail: email
178
180
link: link
179
181
completion: ^(FIRAuthDataResult *_Nullable authResult, NSError *_Nullable error) {
180
- [self sendResult: result forUser : authResult.user error: error];
182
+ [self sendResult: result forAuthDataResult : authResult error: error];
181
183
}];
182
184
} else if ([@" signInWithEmailAndPassword" isEqualToString: call.method]) {
183
185
NSString *email = call.arguments [@" email" ];
@@ -186,7 +188,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
186
188
signInWithEmail: email
187
189
password: password
188
190
completion: ^(FIRAuthDataResult *authResult, NSError *error) {
189
- [self sendResult: result forUser : authResult.user error: error];
191
+ [self sendResult: result forAuthDataResult : authResult error: error];
190
192
}];
191
193
} else if ([@" signOut" isEqualToString: call.method]) {
192
194
NSError *signOutError;
@@ -215,8 +217,8 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
215
217
} else if ([@" linkWithCredential" isEqualToString: call.method]) {
216
218
[[self getAuth: call.arguments].currentUser
217
219
linkAndRetrieveDataWithCredential: [self getCredential: call.arguments]
218
- completion: ^(FIRAuthDataResult *r , NSError *error) {
219
- [self sendResult: result forUser: r.user error: error];
220
+ completion: ^(FIRAuthDataResult *authResult , NSError *error) {
221
+ [self sendResult: result forAuthDataResult: authResult error: error];
220
222
}];
221
223
} else if ([@" unlinkFromProvider" isEqualToString: call.method]) {
222
224
NSString *provider = call.arguments [@" provider" ];
@@ -266,7 +268,7 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
266
268
[[self getAuth: call.arguments]
267
269
signInWithCustomToken: token
268
270
completion: ^(FIRAuthDataResult *authResult, NSError *error) {
269
- [self sendResult: result forUser : authResult.user error: error];
271
+ [self sendResult: result forAuthDataResult : authResult error: error];
270
272
}];
271
273
272
274
} else if ([@" startListeningAuthState" isEqualToString: call.method]) {
@@ -329,8 +331,11 @@ - (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result
329
331
verificationCode: smsCode];
330
332
[[self getAuth: call.arguments]
331
333
signInAndRetrieveDataWithCredential: credential
332
- completion: ^(FIRAuthDataResult *r, NSError *_Nullable error) {
333
- [self sendResult: result forUser: r.user error: error];
334
+ completion: ^(FIRAuthDataResult *authResult,
335
+ NSError *_Nullable error) {
336
+ [self sendResult: result
337
+ forAuthDataResult: authResult
338
+ error: error];
334
339
}];
335
340
} else if ([@" setLanguageCode" isEqualToString: call.method]) {
336
341
NSString *language = call.arguments [@" language" ];
@@ -353,14 +358,32 @@ - (NSMutableDictionary *)dictionaryFromUser:(FIRUser *)user {
353
358
354
359
NSMutableDictionary *userData = [toDictionary (user) mutableCopy ];
355
360
userData[@" creationTimestamp" ] = [NSNumber numberWithLong: creationDate];
356
- userData[@" lastSignInTimestamp" ] = [NSNumber numberWithInt : lastSignInDate];
361
+ userData[@" lastSignInTimestamp" ] = [NSNumber numberWithLong : lastSignInDate];
357
362
userData[@" isAnonymous" ] = [NSNumber numberWithBool: user.isAnonymous];
358
363
userData[@" isEmailVerified" ] = [NSNumber numberWithBool: user.isEmailVerified];
359
364
userData[@" providerData" ] = providerData;
360
365
return userData;
361
366
}
362
367
#pragma clang diagnostic pop
363
368
369
+ - (void )sendResult : (FlutterResult)result
370
+ forAuthDataResult : (FIRAuthDataResult *)authResult
371
+ error : (NSError *)error {
372
+ FIRUser *user = authResult.user ;
373
+ FIRAdditionalUserInfo *additionalUserInfo = authResult.additionalUserInfo ;
374
+ [self sendResult: result
375
+ forObject: @{
376
+ @" user" : (user != nil ? [self dictionaryFromUser: user] : nil ),
377
+ @" additionalUserInfo" : @{
378
+ @" isNewUser" : [NSNumber numberWithBool: additionalUserInfo.isNewUser],
379
+ @" username" : additionalUserInfo.username ,
380
+ @" providerId" : additionalUserInfo.providerID ,
381
+ @" profile" : additionalUserInfo.profile ,
382
+ }
383
+ }
384
+ error: error];
385
+ }
386
+
364
387
- (void )sendResult : (FlutterResult)result forUser : (FIRUser *)user error : (NSError *)error {
365
388
[self sendResult: result
366
389
forObject: (user != nil ? [self dictionaryFromUser: user] : nil )
0 commit comments