aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Zsika Phillip <protocol86@users.noreply.github.com>2018-04-25 06:49:59 -0700
committerGravatar Paul Beusterien <paulbeusterien@google.com>2018-04-25 06:49:59 -0700
commit0ae7d902d724be67d77d5dab1ad698a6ab4e3dfc (patch)
tree6082b2e32e07fa94858a6582820b5d8e38baff8d
parent260557691fae8ba34e262f480c632ab63b5133ee (diff)
First pass of Auth breaking changes (#1123)
-rw-r--r--Example/Auth/Sample/MainViewController.m64
-rw-r--r--Example/Auth/Tests/FIRAuthTests.m75
-rw-r--r--Example/Auth/Tests/FIRUserTests.m9
-rw-r--r--Firebase/Auth/Source/FIRAuth.m38
-rw-r--r--Firebase/Auth/Source/Public/FIRAuth.h89
5 files changed, 178 insertions, 97 deletions
diff --git a/Example/Auth/Sample/MainViewController.m b/Example/Auth/Sample/MainViewController.m
index d4915cd..4c9ec13 100644
--- a/Example/Auth/Sample/MainViewController.m
+++ b/Example/Auth/Sample/MainViewController.m
@@ -143,7 +143,7 @@ static NSString *const kSignInEmailPasswordButtonText = @"Sign in with Email/Pas
@brief The text of the "Email/Password SignIn (AuthDataResult)" button.
*/
static NSString *const kSignInEmailPasswordAuthDataResultButtonText =
- @"Sign in with Email/Password (AuthDataReult)";
+ @"Sign in with Email/Password (Deprecated)";
/** @var kSignInWithCustomTokenButtonText
@brief The text of the "Sign In (BYOAuth)" button.
@@ -154,7 +154,7 @@ static NSString *const kSignInWithCustomTokenButtonText = @"Sign In (BYOAuth)";
@brief The text of the "Sign In with Custom Token (Auth Result)" button.
*/
static NSString *const kSignInWithCustomAuthResultTokenButtonText = @"Sign In with Custom Token"
- " (Auth Result)";
+ " (Deprecated)";
/** @var kSignInAnonymouslyButtonText
@brief The text of the "Sign In Anonymously" button.
@@ -165,7 +165,7 @@ static NSString *const kSignInAnonymouslyButtonText = @"Sign In Anonymously";
@brief The text of the "Sign In Anonymously (AuthDataResult)" button.
*/
static NSString *const kSignInAnonymouslyWithAuthResultButtonText =
- @"Sign In Anonymously (AuthDataResult)";
+ @"Sign In Anonymously (Deprecated)";
/** @var kSignedInAlertTitle
@brief The text of the "Sign In Succeeded" alert.
@@ -1226,11 +1226,13 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
return;
}
[auth signOut:NULL];
- [self signInAnonymouslyWithCallback:^(FIRUser *_Nullable user, NSError *_Nullable error) {
- if (user) {
- NSString *anonymousUID = user.uid;
- [self signInAnonymouslyWithCallback:^(FIRUser *_Nullable user, NSError *_Nullable error) {
- if (![user.uid isEqual:anonymousUID]) {
+ [self signInAnonymouslyWithCallback:^(FIRAuthDataResult *_Nullable result,
+ NSError *_Nullable error) {
+ if (result.user) {
+ NSString *anonymousUID = result.user.uid;
+ [self signInAnonymouslyWithCallback:^(FIRAuthDataResult *_Nullable user,
+ NSError *_Nullable error) {
+ if (![result.user.uid isEqual:anonymousUID]) {
[self logFailedTest:@"Consecutive anonymous sign-ins should yeild the same User ID"];
return;
}
@@ -1244,13 +1246,13 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
@brief Performs anonymous sign in and then executes callback.
@param callback The callback to be executed.
*/
-- (void)signInAnonymouslyWithCallback:(nullable FIRAuthResultCallback)callback {
+- (void)signInAnonymouslyWithCallback:(nullable FIRAuthDataResultCallback)callback {
FIRAuth *auth = [AppManager auth];
if (!auth) {
[self logFailedTest:@"Could not obtain auth object."];
return;
}
- [auth signInAnonymouslyWithCompletion:^(FIRUser *_Nullable user,
+ [auth signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in anonymously failed" error:error];
@@ -1259,7 +1261,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
}
[self logSuccess:@"sign-in anonymously succeeded."];
if (callback) {
- callback(user, nil);
+ callback(result, nil);
}
}];
}
@@ -1275,9 +1277,10 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
return;
}
[auth signOut:NULL];
- [self signInAnonymouslyWithCallback:^(FIRUser *_Nullable user, NSError *_Nullable error) {
- if (user) {
- NSString *anonymousUID = user.uid;
+ [self signInAnonymouslyWithCallback:^(FIRAuthDataResult *_Nullable result,
+ NSError *_Nullable error) {
+ if (result.user) {
+ NSString *anonymousUID = result.user.uid;
[self showMessagePromptWithTitle:@"Sign In Instructions"
message:kUnlinkAccountMessagePrompt
showCancelButton:NO
@@ -1287,7 +1290,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
callback:^(FIRAuthCredential *credential,
NSError *error) {
if (credential) {
- [user linkWithCredential:credential completion:^(FIRUser *user, NSError *error) {
+ [result.user linkWithCredential:credential completion:^(FIRUser *user,
+ NSError *error) {
if (error) {
[self logFailure:@"link auth provider failed" error:error];
[self logFailedTest:@"Account needs to be linked to complete the test."];
@@ -1346,7 +1350,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
}
FIRAuth *auth = [AppManager auth];
[auth signInWithCustomToken:customToken
- completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
+ completion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in with custom token failed" error:error];
[self logFailedTest:@"A fresh custom token should succeed in signing-in."];
@@ -1364,7 +1368,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
[self logSuccess:@"refresh token succeeded."];
[auth signOut:NULL];
[auth signInWithCustomToken:expiredCustomToken
- completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
+ completion:^(FIRAuthDataResult *_Nullable result,
+ NSError *_Nullable error) {
if (!error) {
[self logSuccess:@"sign-in with custom token succeeded."];
[self logFailedTest:@"sign-in with an expired custom token should NOT succeed."];
@@ -1372,7 +1377,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
}
[self logFailure:@"sign-in with custom token failed" error:error];
[auth signInWithCustomToken:kInvalidCustomToken
- completion:^(FIRUser *_Nullable user,
+ completion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
if (!error) {
[self logSuccess:@"sign-in with custom token succeeded."];
@@ -1405,7 +1410,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
return;
}
[[AppManager auth] signInWithCustomToken:customToken
- completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
+ completion:^(FIRAuthDataResult *_Nullable user,
+ NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in with custom token failed" error:error];
[self logFailedTest:@"A fresh custom token should succeed in signing-in."];
@@ -1435,7 +1441,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
return;
}
[[AppManager auth] signInWithCustomToken:customToken
- completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
+ completion:^(FIRAuthDataResult *_Nullable result,
+ NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in with custom token failed" error:error];
[self logFailedTest:@"A fresh custom token should succeed in signing-in."];
@@ -1683,7 +1690,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
@brief Invoked when "Sign in with Google" row is pressed.
*/
- (void)signInGoogle {
- [self signinWithProvider:[AuthProviders google] retrieveData:NO];
+ [self signinWithProvider:[AuthProviders google] retrieveData:YES];
}
/** @fn signInGoogleAndRetrieveData
@@ -1697,7 +1704,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
@brief Invoked when "Sign in with Facebook" row is pressed.
*/
- (void)signInFacebook {
- [self signinWithProvider:[AuthProviders facebook] retrieveData:NO];
+ [self signinWithProvider:[AuthProviders facebook] retrieveData:YES];
}
/** @fn signInFacebookAndRetrieveData
@@ -3149,12 +3156,13 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
@brief Signs in as an anonymous user.
*/
- (void)signInAnonymously {
- [[AppManager auth] signInAnonymouslyWithCompletion:^(FIRUser *_Nullable user,
+ [[AppManager auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in anonymously failed" error:error];
} else {
[self logSuccess:@"sign-in anonymously succeeded."];
+ [self log:[NSString stringWithFormat:@"User ID : %@", result.user.uid]];
}
[self showTypicalUIForUserUpdateResultsWithTitle:kSignInAnonymouslyButtonText error:error];
}];
@@ -3190,8 +3198,9 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
FIRAuthCredential *credential =
[FIROAuthProvider credentialWithProviderID:FIRGitHubAuthProviderID accessToken:accessToken];
if (credential) {
- [[AppManager auth] signInWithCredential:credential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[AppManager auth] signInWithCredential:credential
+ completion:^(FIRUser *_Nullable result,
+ NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in with provider failed" error:error];
} else {
@@ -3338,7 +3347,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
- (void)doSignInWithCustomToken:(NSString *_Nullable)userEnteredTokenText {
[[AppManager auth] signInWithCustomToken:userEnteredTokenText
- completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
+ completion:^(FIRAuthDataResult *_Nullable result,
+ NSError *_Nullable error) {
if (error) {
[self logFailure:@"sign-in with custom token failed" error:error];
[self showMessagePromptWithTitle:kSignInErrorAlertTitle
@@ -3349,7 +3359,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) {
}
[self logSuccess:@"sign-in with custom token succeeded."];
[self showMessagePromptWithTitle:kSignedInAlertTitle
- message:user.displayName
+ message:result.user.displayName
showCancelButton:NO
completion:nil];
}];
diff --git a/Example/Auth/Tests/FIRAuthTests.m b/Example/Auth/Tests/FIRAuthTests.m
index 47a430b..d238057 100644
--- a/Example/Auth/Tests/FIRAuthTests.m
+++ b/Example/Auth/Tests/FIRAuthTests.m
@@ -712,10 +712,10 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
[[FIRAuth auth] signInWithEmail:kEmail
password:kFakePassword
- completion:^(FIRUser *_Nullable user,
+ completion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
- [self assertUser:user];
+ [self assertUser:result.user];
XCTAssertNil(error);
[expectation fulfill];
}];
@@ -734,10 +734,10 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
[[FIRAuth auth] signInWithEmail:kEmail
password:kFakePassword
- completion:^(FIRUser *_Nullable user,
+ completion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
- XCTAssertNil(user);
+ XCTAssertNil(result.user);
XCTAssertEqual(error.code, FIRAuthErrorCodeWrongPassword);
XCTAssertNotNil(error.userInfo[NSLocalizedDescriptionKey]);
[expectation fulfill];
@@ -1071,8 +1071,9 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *emailCredential =
[FIREmailAuthProvider credentialWithEmail:kEmail link:kFakeEmailSignInlink];
- [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:emailCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
XCTAssertNil(user);
XCTAssertEqual(error.code, FIRAuthErrorCodeUserDisabled);
@@ -1107,8 +1108,9 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *emailCredential =
[FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword];
- [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:emailCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
[self assertUser:user];
XCTAssertNil(error);
@@ -1145,8 +1147,9 @@ static const NSTimeInterval kWaitInterval = .5;
FIRAuthCredential *emailCredential =
[FIREmailPasswordAuthProvider credentialWithEmail:kEmail password:kFakePassword];
#pragma clang diagnostic pop
- [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:emailCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
[self assertUser:user];
XCTAssertNil(error);
@@ -1168,8 +1171,9 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *emailCredential =
[FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword];
- [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:emailCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
XCTAssertNil(user);
XCTAssertEqual(error.code, FIRAuthErrorCodeUserDisabled);
@@ -1193,8 +1197,8 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *emailCredential =
[FIREmailAuthProvider credentialWithEmail:kEmail password:emptyString];
- [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:emailCredential
+ completion:^(FIRUser *_Nullable user, NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
XCTAssertEqual(error.code, FIRAuthErrorCodeWrongPassword);
[expectation fulfill];
@@ -1228,8 +1232,9 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *googleCredential =
[FIRGoogleAuthProvider credentialWithIDToken:kGoogleIDToken accessToken:kGoogleAccessToken];
- [[FIRAuth auth] signInWithCredential:googleCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:googleCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
XCTAssertEqual(error.code, FIRAuthErrorCodeAccountExistsWithDifferentCredential);
XCTAssertEqualObjects(error.userInfo[FIRAuthErrorUserInfoEmailKey], kEmail);
@@ -1267,8 +1272,9 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *googleCredential =
[FIRGoogleAuthProvider credentialWithIDToken:kGoogleIDToken accessToken:kGoogleAccessToken];
- [[FIRAuth auth] signInWithCredential:googleCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:googleCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
[self assertUserGoogle:user];
XCTAssertNil(error);
@@ -1336,8 +1342,9 @@ static const NSTimeInterval kWaitInterval = .5;
[[FIRAuth auth] signOut:NULL];
FIRAuthCredential *googleCredential =
[FIRGoogleAuthProvider credentialWithIDToken:kGoogleIDToken accessToken:kGoogleAccessToken];
- [[FIRAuth auth] signInWithCredential:googleCredential completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCredential:googleCredential
+ completion:^(FIRUser *_Nullable user,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
XCTAssertNil(user);
XCTAssertEqual(error.code, FIRAuthErrorCodeEmailAlreadyInUse);
@@ -1369,10 +1376,10 @@ static const NSTimeInterval kWaitInterval = .5;
[self expectGetAccountInfoAnonymous];
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
[[FIRAuth auth] signOut:NULL];
- [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRUser *_Nullable user,
+ [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
- [self assertUserAnonymous:user];
+ [self assertUserAnonymous:result.user];
XCTAssertNil(error);
[expectation fulfill];
}];
@@ -1389,10 +1396,10 @@ static const NSTimeInterval kWaitInterval = .5;
.andDispatchError2([FIRAuthErrorUtils operationNotAllowedErrorWithMessage:nil]);
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
[[FIRAuth auth] signOut:NULL];
- [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRUser *_Nullable user,
+ [[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
- XCTAssertNil(user);
+ XCTAssertNil(result.user);
XCTAssertEqual(error.code, FIRAuthErrorCodeOperationNotAllowed);
XCTAssertNotNil(error.userInfo[NSLocalizedDescriptionKey]);
[expectation fulfill];
@@ -1474,10 +1481,10 @@ static const NSTimeInterval kWaitInterval = .5;
[self expectGetAccountInfo];
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
[[FIRAuth auth] signOut:NULL];
- [[FIRAuth auth] signInWithCustomToken:kCustomToken completion:^(FIRUser *_Nullable user,
+ [[FIRAuth auth] signInWithCustomToken:kCustomToken completion:^(FIRAuthDataResult *_Nullable result,
NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
- [self assertUser:user];
+ [self assertUser:result.user];
XCTAssertNil(error);
[expectation fulfill];
}];
@@ -1494,10 +1501,11 @@ static const NSTimeInterval kWaitInterval = .5;
.andDispatchError2([FIRAuthErrorUtils invalidCustomTokenErrorWithMessage:nil]);
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
[[FIRAuth auth] signOut:NULL];
- [[FIRAuth auth] signInWithCustomToken:kCustomToken completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithCustomToken:kCustomToken
+ completion:^(FIRAuthDataResult *_Nullable result,
+ NSError *_Nullable error) {
XCTAssertTrue([NSThread isMainThread]);
- XCTAssertNil(user);
+ XCTAssertNil(result.user);
XCTAssertEqual(error.code, FIRAuthErrorCodeInvalidCustomToken);
XCTAssertNotNil(error.userInfo[NSLocalizedDescriptionKey]);
[expectation fulfill];
@@ -2434,13 +2442,14 @@ static const NSTimeInterval kWaitInterval = .5;
});
[self expectGetAccountInfoWithAccessToken:accessToken];
XCTestExpectation *expectation = [self expectationWithDescription:@"callback"];
- [[FIRAuth auth] signInWithEmail:kEmail password:kFakePassword completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
+ [[FIRAuth auth] signInWithEmail:kEmail
+ password:kFakePassword
+ completion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) {
- user.requestConfiguration = [[FIRAuthRequestConfiguration alloc] initWithAPIKey:APIKey];
+ result.user.requestConfiguration = [[FIRAuthRequestConfiguration alloc] initWithAPIKey:APIKey];
[expectation fulfill];
if (completion) {
- completion(user, error);
+ completion(result.user, error);
}
}];
[self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil];
diff --git a/Example/Auth/Tests/FIRUserTests.m b/Example/Auth/Tests/FIRUserTests.m
index a27304c..7a6c165 100644
--- a/Example/Auth/Tests/FIRUserTests.m
+++ b/Example/Auth/Tests/FIRUserTests.m
@@ -2244,11 +2244,12 @@ static const NSTimeInterval kExpectationTimeout = 2;
});
[self expectGetAccountInfoWithMockUserInfoResponse:mockUserInfoResponse];
[[FIRAuth auth] signOut:NULL];
- [[FIRAuth auth] signInWithEmail:kEmail password:kFakePassword completion:^(FIRUser *_Nullable user,
- NSError *_Nullable error) {
- XCTAssertNotNil(user);
+ [[FIRAuth auth] signInWithEmail:kEmail
+ password:kFakePassword
+ completion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) {
+ XCTAssertNotNil(result.user);
XCTAssertNil(error);
- completion(user);
+ completion(result.user);
}];
}
diff --git a/Firebase/Auth/Source/FIRAuth.m b/Firebase/Auth/Source/FIRAuth.m
index 1930957..5ec9a6f 100644
--- a/Firebase/Auth/Source/FIRAuth.m
+++ b/Firebase/Auth/Source/FIRAuth.m
@@ -551,15 +551,15 @@ static NSMutableDictionary *gKeychainServiceNameForAppName;
- (void)signInWithEmail:(NSString *)email
password:(NSString *)password
- completion:(FIRAuthResultCallback)completion {
+ completion:(FIRAuthDataResultCallback)completion {
dispatch_async(FIRAuthGlobalWorkQueue(), ^{
- FIRAuthResultCallback decoratedCallback =
- [self signInFlowAuthResultCallbackByDecoratingCallback:completion];
+ FIRAuthDataResultCallback decoratedCallback =
+ [self signInFlowAuthDataResultCallbackByDecoratingCallback:completion];
[self internalSignInAndRetrieveDataWithEmail:email
password:password
completion:^(FIRAuthDataResult *_Nullable authResult,
NSError *_Nullable error) {
- decoratedCallback(authResult.user, error);
+ decoratedCallback(authResult, error);
}];
});
}
@@ -887,12 +887,14 @@ static NSMutableDictionary *gKeychainServiceNameForAppName;
});
}
-- (void)signInAnonymouslyWithCompletion:(FIRAuthResultCallback)completion {
+- (void)signInAnonymouslyWithCompletion:(FIRAuthDataResultCallback)completion {
dispatch_async(FIRAuthGlobalWorkQueue(), ^{
- FIRAuthResultCallback decoratedCallback =
- [self signInFlowAuthResultCallbackByDecoratingCallback:completion];
+ FIRAuthDataResultCallback decoratedCallback =
+ [self signInFlowAuthDataResultCallbackByDecoratingCallback:completion];
if (self->_currentUser.anonymous) {
- decoratedCallback(self->_currentUser, nil);
+ FIRAuthDataResult *result =
+ [[FIRAuthDataResult alloc] initWithUser:self->_currentUser additionalUserInfo:nil];
+ decoratedCallback(result, nil);
return;
}
[self internalSignInAnonymouslyWithCompletion:^(FIRSignUpNewUserResponse *_Nullable response,
@@ -905,20 +907,30 @@ static NSMutableDictionary *gKeychainServiceNameForAppName;
accessTokenExpirationDate:response.approximateExpirationDate
refreshToken:response.refreshToken
anonymous:YES
- callback:decoratedCallback];
+ callback:^(FIRUser * _Nullable user, NSError * _Nullable error) {
+ FIRAdditionalUserInfo *additionalUserInfo =
+ [[FIRAdditionalUserInfo alloc] initWithProviderID:FIREmailAuthProviderID
+ profile:nil
+ username:nil
+ isNewUser:YES];
+ FIRAuthDataResult *authDataResult =
+ [[FIRAuthDataResult alloc] initWithUser:user
+ additionalUserInfo:additionalUserInfo];
+ decoratedCallback(authDataResult, nil);
+ }];
}];
});
}
- (void)signInWithCustomToken:(NSString *)token
- completion:(nullable FIRAuthResultCallback)completion {
+ completion:(nullable FIRAuthDataResultCallback)completion {
dispatch_async(FIRAuthGlobalWorkQueue(), ^{
- FIRAuthResultCallback decoratedCallback =
- [self signInFlowAuthResultCallbackByDecoratingCallback:completion];
+ FIRAuthDataResultCallback decoratedCallback =
+ [self signInFlowAuthDataResultCallbackByDecoratingCallback:completion];
[self internalSignInAndRetrieveDataWithCustomToken:token
completion:^(FIRAuthDataResult *_Nullable authResult,
NSError *_Nullable error) {
- decoratedCallback(authResult.user, error);
+ decoratedCallback(authResult, error);
}];
});
}
diff --git a/Firebase/Auth/Source/Public/FIRAuth.h b/Firebase/Auth/Source/Public/FIRAuth.h
index 711e4b6..c20ecbe 100644
--- a/Firebase/Auth/Source/Public/FIRAuth.h
+++ b/Firebase/Auth/Source/Public/FIRAuth.h
@@ -370,7 +370,7 @@ NS_SWIFT_NAME(Auth)
*/
- (void)signInWithEmail:(NSString *)email
password:(NSString *)password
- completion:(nullable FIRAuthResultCallback)completion;
+ completion:(nullable FIRAuthDataResultCallback)completion;
/** @fn signInWithEmail:link:completion:
@brief Signs in using an email address and email sign-in link.
@@ -397,7 +397,8 @@ NS_SWIFT_NAME(Auth)
completion:(nullable FIRAuthDataResultCallback)completion;
/** @fn signInAndRetrieveDataWithEmail:password:completion:
- @brief Signs in using an email address and password.
+ @brief Please use `signInWithEmail:password:completion:` for Objective-C or
+ `signIn(withEmail:password:completion:)` for Swift instead.
@param email The user's email address.
@param password The user's password.
@@ -417,23 +418,62 @@ NS_SWIFT_NAME(Auth)
@remarks See `FIRAuthErrors` for a list of error codes that are common to all API methods.
-
- @remarks This method will only exist until the next major Firebase release following 4.x.x.
- After the next major release the method `signInWithEmail:password:completion:` will support
- the `FIRAuthDataResultCallback`.
*/
- (void)signInAndRetrieveDataWithEmail:(NSString *)email
password:(NSString *)password
- completion:(nullable FIRAuthDataResultCallback)completion;
+ completion:(nullable FIRAuthDataResultCallback)completion
+ DEPRECATED_MSG_ATTRIBUTE(
+ "signInAndRetrieveDataWithEmail:password:completion: is "
+ "deprecated. Please use"
+ " signInWithEmail:password:completion: for Objective-C or"
+ " signIn(withEmail:password:completion:) for Swift instead.");
/** @fn signInWithCredential:completion:
- @brief Please use `signInAndRetrieveDataWithCredential:completion:` instead. This method
- doesn't return additional identity provider data.
+ @brief Please use `signInAndRetrieveDataWithCredential:completion:` for Objective-C or
+ `signInAndRetrieveData(with:completion:)` for swift instead
+
+ @param credential The credential supplied by the IdP.
+ @param completion Optionally; a block which is invoked when the sign in flow finishes, or is
+ canceled. Invoked asynchronously on the main thread in the future.
+
+ @remarks Possible error codes:
+
+ + `FIRAuthErrorCodeInvalidCredential` - Indicates the supplied credential is invalid.
+ This could happen if it has expired or it is malformed.
+ + `FIRAuthErrorCodeOperationNotAllowed` - Indicates that accounts
+ with the identity provider represented by the credential are not enabled.
+ Enable them in the Auth section of the Firebase console.
+ + `FIRAuthErrorCodeAccountExistsWithDifferentCredential` - Indicates the email asserted
+ by the credential (e.g. the email in a Facebook access token) is already in use by an
+ existing account, that cannot be authenticated with this sign-in method. Call
+ fetchProvidersForEmail for this user’s email and then prompt them to sign in with any of
+ the sign-in providers returned. This error will only be thrown if the "One account per
+ email address" setting is enabled in the Firebase console, under Auth settings.
+ + `FIRAuthErrorCodeUserDisabled` - Indicates the user's account is disabled.
+ + `FIRAuthErrorCodeWrongPassword` - Indicates the user attempted sign in with an
+ incorrect password, if credential is of the type EmailPasswordAuthCredential.
+ + `FIRAuthErrorCodeInvalidEmail` - Indicates the email address is malformed.
+ + `FIRAuthErrorCodeMissingVerificationID` - Indicates that the phone auth credential was
+ created with an empty verification ID.
+ + `FIRAuthErrorCodeMissingVerificationCode` - Indicates that the phone auth credential
+ was created with an empty verification code.
+ + `FIRAuthErrorCodeInvalidVerificationCode` - Indicates that the phone auth credential
+ was created with an invalid verification Code.
+ + `FIRAuthErrorCodeInvalidVerificationID` - Indicates that the phone auth credential was
+ created with an invalid verification ID.
+ + `FIRAuthErrorCodeSessionExpired` - Indicates that the SMS code has expired.
+
+
+
+ @remarks See `FIRAuthErrors` for a list of error codes that are common to all API methods
*/
- (void)signInWithCredential:(FIRAuthCredential *)credential
- completion:(nullable FIRAuthResultCallback)completion
- DEPRECATED_MSG_ATTRIBUTE("signInWithCredential: is deprecated. Please use "
- "signInAndRetrieveDataWithCredential:completion:` instead.");
+ completion:(nullable FIRAuthResultCallback)completion DEPRECATED_MSG_ATTRIBUTE(
+ "signInWithCredential:completion: is"
+ " deprecated. Please use"
+ " signInAndRetrieveDataWithCredential:completion: for"
+ " Objective-C or signInAndRetrieveData(with:completion:) for"
+ " Swift instead.");
/** @fn signInAndRetrieveDataWithCredential:completion:
@brief Asynchronously signs in to Firebase with the given 3rd-party credentials (e.g. a Facebook
@@ -473,7 +513,7 @@ NS_SWIFT_NAME(Auth)
- @remarks See `FIRAuthErrors` for a list of error codes that are common to all API methods.
+ @remarks See `FIRAuthErrors` for a list of error codes that are common to all API methods
*/
- (void)signInAndRetrieveDataWithCredential:(FIRAuthCredential *)credential
completion:(nullable FIRAuthDataResultCallback)completion;
@@ -493,10 +533,11 @@ NS_SWIFT_NAME(Auth)
@remarks See `FIRAuthErrors` for a list of error codes that are common to all API methods.
*/
-- (void)signInAnonymouslyWithCompletion:(nullable FIRAuthResultCallback)completion;
+- (void)signInAnonymouslyWithCompletion:(nullable FIRAuthDataResultCallback)completion;
/** @fn signInAnonymouslyAndRetrieveDataWithCompletion:
- @brief Asynchronously creates and becomes an anonymous user.
+ @brief `Please use sign `signInAnonymouslyWithCompletion:` for Objective-C or
+ `signInAnonymously(Completion:)` for Swift instead.
@param completion Optionally; a block which is invoked when the sign in finishes, or is
canceled. Invoked asynchronously on the main thread in the future.
@@ -516,7 +557,10 @@ NS_SWIFT_NAME(Auth)
`FIRAuthDataResultCallback`.
*/
- (void)signInAnonymouslyAndRetrieveDataWithCompletion:
- (nullable FIRAuthDataResultCallback)completion;
+ (nullable FIRAuthDataResultCallback)completion
+ DEPRECATED_MSG_ATTRIBUTE("signInAnonymouslyAndRetrieveDataWithCompletion: is deprecated."
+ " Please use signInAnonymouslyWithCompletion: for Objective-C or"
+ " signInAnonymously(Completion:) for swift instead.");
/** @fn signInWithCustomToken:completion:
@brief Asynchronously signs in to Firebase with the given Auth token.
@@ -537,10 +581,11 @@ NS_SWIFT_NAME(Auth)
@remarks See `FIRAuthErrors` for a list of error codes that are common to all API methods.
*/
- (void)signInWithCustomToken:(NSString *)token
- completion:(nullable FIRAuthResultCallback)completion;
+ completion:(nullable FIRAuthDataResultCallback)completion;
/** @fn signInAndRetrieveDataWithCustomToken:completion:
- @brief Asynchronously signs in to Firebase with the given Auth token.
+ @brief Please use `signInWithCustomToken:completion:` or `signIn(withCustomToken:completion:)`
+ for Swift instead.
@param token A self-signed custom auth token.
@param completion Optionally; a block which is invoked when the sign in finishes, or is
@@ -563,8 +608,12 @@ NS_SWIFT_NAME(Auth)
support the `FIRAuthDataResultCallback`.
*/
- (void)signInAndRetrieveDataWithCustomToken:(NSString *)token
- completion:(nullable FIRAuthDataResultCallback)completion;
-
+ completion:(nullable FIRAuthDataResultCallback)completion
+ DEPRECATED_MSG_ATTRIBUTE(
+ "signInAndRetrieveDataWithCustomToken:completion: is"
+ " deprecated. Please use signInWithCustomToken:completion:"
+ "for Objective-C or signIn(withCustomToken:completion:) for"
+ " Swift instead.");
/** @fn createUserWithEmail:password:completion:
@brief Creates and, on success, signs in a user with the given email address and password.