diff options
author | Zsika Phillip <protocol86@users.noreply.github.com> | 2018-04-25 21:50:19 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-25 21:50:19 -0700 |
commit | bd85f550931f89c82ebf77d53cbff049bfef9be8 (patch) | |
tree | 77ac278f2221fd1b7413bdc84d2c246669f82ae8 | |
parent | 0748f265a6c95e2692f27ad59235521cb45e175d (diff) |
Adds new callback to createUse API (breaking change) (#1186)
-rw-r--r-- | Example/Auth/Sample/MainViewController.m | 8 | ||||
-rw-r--r-- | Example/Auth/SwiftSample/ViewController.swift | 4 | ||||
-rw-r--r-- | Example/Auth/Tests/FIRAuthTests.m | 15 | ||||
-rw-r--r-- | Firebase/Auth/Source/FIRAuth.m | 18 | ||||
-rw-r--r-- | Firebase/Auth/Source/Public/FIRAuth.h | 13 |
5 files changed, 40 insertions, 18 deletions
diff --git a/Example/Auth/Sample/MainViewController.m b/Example/Auth/Sample/MainViewController.m index 4c9ec13..0da28c8 100644 --- a/Example/Auth/Sample/MainViewController.m +++ b/Example/Auth/Sample/MainViewController.m @@ -1884,7 +1884,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { callback:(nullable FIRAuthResultCallback)callback { [[AppManager auth] createUserWithEmail:email password:password - completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { + completion:^(FIRAuthDataResult *_Nullable result, + NSError *_Nullable error) { if (error) { [self logFailure:@"sign-up with Email/Password failed" error:error]; if (callback) { @@ -1893,7 +1894,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { } else { [self logSuccess:@"sign-up with Email/Password succeeded."]; if (callback) { - callback(user, nil); + callback(result.user, nil); } } [self showTypicalUIForUserUpdateResultsWithTitle:@"Sign-In" error:error]; @@ -2803,7 +2804,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { [self showSpinner:^{ [[AppManager auth] createUserWithEmail:email password:password - completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { + completion:^(FIRAuthDataResult *_Nullable result, + NSError *_Nullable error) { if (error) { [self logFailure:@"create user failed" error:error]; } else { diff --git a/Example/Auth/SwiftSample/ViewController.swift b/Example/Auth/SwiftSample/ViewController.swift index d902b38..05b0dd2 100644 --- a/Example/Auth/SwiftSample/ViewController.swift +++ b/Example/Auth/SwiftSample/ViewController.swift @@ -232,9 +232,9 @@ final class ViewController: UIViewController, UITextFieldDelegate, AuthUIDelegat } case .createUser: Auth.auth().createUser(withEmail: emailField.text!, password: passwordField.text!) { - user, error in + result, error in self.ifNoError(error) { - self.showAlert(title: "Signed In With Credential", message: user?.textDescription) + self.showAlert(title: "Signed In With Credential", message: result?.user.textDescription) } } case .signOut: diff --git a/Example/Auth/Tests/FIRAuthTests.m b/Example/Auth/Tests/FIRAuthTests.m index d238057..34c0499 100644 --- a/Example/Auth/Tests/FIRAuthTests.m +++ b/Example/Auth/Tests/FIRAuthTests.m @@ -1592,9 +1592,9 @@ static const NSTimeInterval kWaitInterval = .5; [[FIRAuth auth] signOut:NULL]; [[FIRAuth auth] createUserWithEmail:kEmail password:kFakePassword - completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { + completion:^(FIRAuthDataResult *_Nullable result, NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); - [self assertUser:user]; + [self assertUser:result.user]; XCTAssertNil(error); [expectation fulfill]; }]; @@ -1614,9 +1614,10 @@ static const NSTimeInterval kWaitInterval = .5; [[FIRAuth auth] signOut:NULL]; [[FIRAuth auth] createUserWithEmail:kEmail password:kFakePassword - completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { + completion:^(FIRAuthDataResult *_Nullable result, + NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); - XCTAssertNil(user); + XCTAssertNil(result.user); XCTAssertEqual(error.code, FIRAuthErrorCodeWeakPassword); XCTAssertNotNil(error.userInfo[NSLocalizedDescriptionKey]); XCTAssertEqualObjects(error.userInfo[NSLocalizedFailureReasonErrorKey], reason); @@ -1700,7 +1701,8 @@ static const NSTimeInterval kWaitInterval = .5; [[FIRAuth auth] signOut:NULL]; [[FIRAuth auth] createUserWithEmail:kEmail password:@"" - completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { + completion:^(FIRAuthDataResult *_Nullable result, + NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); XCTAssertEqual(error.code, FIRAuthErrorCodeWeakPassword); [expectation fulfill]; @@ -1719,7 +1721,8 @@ static const NSTimeInterval kWaitInterval = .5; [[FIRAuth auth] signOut:NULL]; [[FIRAuth auth] createUserWithEmail:@"" password:kFakePassword - completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { + completion:^(FIRAuthDataResult *_Nullable result, + NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); XCTAssertEqual(error.code, FIRAuthErrorCodeMissingEmail); [expectation fulfill]; diff --git a/Firebase/Auth/Source/FIRAuth.m b/Firebase/Auth/Source/FIRAuth.m index 5ec9a6f..82a7c02 100644 --- a/Firebase/Auth/Source/FIRAuth.m +++ b/Firebase/Auth/Source/FIRAuth.m @@ -946,10 +946,10 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; - (void)createUserWithEmail:(NSString *)email password:(NSString *)password - completion:(nullable FIRAuthResultCallback)completion { + completion:(nullable FIRAuthDataResultCallback)completion { dispatch_async(FIRAuthGlobalWorkQueue(), ^{ - FIRAuthResultCallback decoratedCallback = - [self signInFlowAuthResultCallbackByDecoratingCallback:completion]; + FIRAuthDataResultCallback decoratedCallback = + [self signInFlowAuthDataResultCallbackByDecoratingCallback:completion]; [self internalCreateUserWithEmail:email password:password completion:^(FIRSignUpNewUserResponse *_Nullable response, @@ -962,7 +962,17 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; accessTokenExpirationDate:response.approximateExpirationDate refreshToken:response.refreshToken anonymous:NO - 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); + }]; }]; }); } diff --git a/Firebase/Auth/Source/Public/FIRAuth.h b/Firebase/Auth/Source/Public/FIRAuth.h index c20ecbe..c262c49 100644 --- a/Firebase/Auth/Source/Public/FIRAuth.h +++ b/Firebase/Auth/Source/Public/FIRAuth.h @@ -639,10 +639,11 @@ NS_SWIFT_NAME(Auth) */ - (void)createUserWithEmail:(NSString *)email password:(NSString *)password - completion:(nullable FIRAuthResultCallback)completion; + completion:(nullable FIRAuthDataResultCallback)completion; /** @fn createUserAndRetrieveDataWithEmail:password:completion: - @brief Creates and, on success, signs in a user with the given email address and password. + @brief Please use `createUserAndRetrieveDataWithEmail:password:completion:` or + `createUser(withEmail:password:completion:)` for Swift instead. @param email The user's email address. @param password The user's desired password. @@ -669,7 +670,13 @@ NS_SWIFT_NAME(Auth) */ - (void)createUserAndRetrieveDataWithEmail:(NSString *)email password:(NSString *)password - completion:(nullable FIRAuthDataResultCallback)completion; + completion:(nullable FIRAuthDataResultCallback)completion + DEPRECATED_MSG_ATTRIBUTE( + "createUserAndRetrieveDataWithEmail:password:completion: is" + " deprecated. Please use" + " createUserWithEmail:password:completion: for Objective-C or" + " createUser(withEmail:password:completion:) for Swift" + " instead."); /** @fn confirmPasswordResetWithCode:newPassword:completion: @brief Resets the password given a code sent to the user outside of the app and a new password |