diff options
author | Xiangtian Dai <xiangtian@google.com> | 2017-09-26 13:17:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-26 13:17:41 -0700 |
commit | 06fbbd8ee01ece0ee4d4599f3abcaf544b2f1a99 (patch) | |
tree | 4a085c1977892fe0016a60aefce2f3e2dafd9705 /Example | |
parent | dc36b0a5d790b11b2701d947aaeef9769d06eb36 (diff) |
- Saves user metadata in keychain. (#305)
- Adds Swift stubs for the new API.
- Shows the `isNewUser` bit in the sample app.
Diffstat (limited to 'Example')
-rw-r--r-- | Example/Auth/Sample/MainViewController.m | 26 | ||||
-rw-r--r-- | Example/Auth/Sample/UserInfoViewController.m | 3 | ||||
-rw-r--r-- | Example/Auth/SwiftSample/Stubs.swift | 10 | ||||
-rw-r--r-- | Example/Auth/Tests/FIRUserTests.m | 2 |
4 files changed, 31 insertions, 10 deletions
diff --git a/Example/Auth/Sample/MainViewController.m b/Example/Auth/Sample/MainViewController.m index 2782f21..e5333cf 100644 --- a/Example/Auth/Sample/MainViewController.m +++ b/Example/Auth/Sample/MainViewController.m @@ -1740,8 +1740,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { [self logSuccess:@"reauthenticate operation succeeded."]; } if (authResult.additionalUserInfo) { - [self logSuccess: - [NSString stringWithFormat:@"%@", authResult.additionalUserInfo.profile]]; + [self logSuccess:[self stringWithAdditionalUserInfo:authResult.additionalUserInfo]]; } [self showTypicalUIForUserUpdateResultsWithTitle:@"Reauthenticate" error:error]; }; @@ -1779,8 +1778,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { [self logSuccess:@"sign-in with provider succeeded."]; } if (authResult.additionalUserInfo) { - [self logSuccess: - [NSString stringWithFormat:@"%@", authResult.additionalUserInfo.profile]]; + [self logSuccess:[self stringWithAdditionalUserInfo:authResult.additionalUserInfo]]; } [self showTypicalUIForUserUpdateResultsWithTitle:@"Sign-In" error:error]; }; @@ -1927,8 +1925,7 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { [self logSuccess:@"link auth provider succeeded."]; } if (authResult.additionalUserInfo) { - [self logSuccess: - [NSString stringWithFormat:@"%@", authResult.additionalUserInfo.profile]]; + [self logSuccess:[self stringWithAdditionalUserInfo:authResult.additionalUserInfo]]; } if (retrieveData) { [self showUIForAuthDataResultWithResult:authResult error:error]; @@ -2755,6 +2752,19 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { return actionCodeSettings; } +/** @fn stringWithAdditionalUserInfo: + @brief Gets the string description of the additional user info. + @param additionalUserInfo The additional user info in question. + @return A string to description the additional user info. + */ +- (NSString *)stringWithAdditionalUserInfo:(nullable FIRAdditionalUserInfo *)additionalUserInfo { + if (!additionalUserInfo) { + return @"(no additional user info)"; + } + NSString *newUserString = additionalUserInfo.isNewUser ? @"new user" : @"existing user"; + return [NSString stringWithFormat:@"%@: %@", newUserString, additionalUserInfo.profile]; +} + /** @fn showTypicalUIForUserUpdateResultsWithTitle:error: @brief Shows a prompt if error is non-nil with the localized description of the error. @param resultsTitle The title of the prompt @@ -2796,10 +2806,8 @@ static NSDictionary<NSString *, NSString *> *parseURL(NSString *urlString) { showCancelButton:NO completion:^(BOOL userPressedOK, NSString *_Nullable userInput) { - NSString *profileMessaage = - [NSString stringWithFormat:@"%@", result.additionalUserInfo.profile ?: @""]; [self showMessagePromptWithTitle:@"Profile Info" - message:profileMessaage + message:[self stringWithAdditionalUserInfo:result.additionalUserInfo] showCancelButton:NO completion:nil]; [self updateUserInfo]; diff --git a/Example/Auth/Sample/UserInfoViewController.m b/Example/Auth/Sample/UserInfoViewController.m index 379e883..60a3e4c 100644 --- a/Example/Auth/Sample/UserInfoViewController.m +++ b/Example/Auth/Sample/UserInfoViewController.m @@ -40,7 +40,8 @@ static NSString *stringFromDate(NSDate *date) { return @"nil"; } NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; - [dateFormatter setDateStyle:NSDateFormatterMediumStyle]; + dateFormatter.dateStyle = NSDateFormatterShortStyle; + dateFormatter.timeStyle = NSDateFormatterShortStyle; return [dateFormatter stringFromDate:date]; } diff --git a/Example/Auth/SwiftSample/Stubs.swift b/Example/Auth/SwiftSample/Stubs.swift index 6733c4d..4f4ccc0 100644 --- a/Example/Auth/SwiftSample/Stubs.swift +++ b/Example/Auth/SwiftSample/Stubs.swift @@ -43,3 +43,13 @@ func languageStubs() { Auth.auth().languageCode = "asdf" Auth.auth().useAppLanguage() } + +func metadataStubs() { + let credential = OAuthProvider.credential(withProviderID: "fake", accessToken: "none") + Auth.auth().signInAndRetrieveData(with: credential) { result, error in + let _: Bool? = result!.additionalUserInfo!.isNewUser + let metadata: UserMetadata = result!.user.metadata + let _: Date? = metadata.lastSignInDate + let _: Date? = metadata.creationDate + } +} diff --git a/Example/Auth/Tests/FIRUserTests.m b/Example/Auth/Tests/FIRUserTests.m index 7dc6ecd..62d2eda 100644 --- a/Example/Auth/Tests/FIRUserTests.m +++ b/Example/Auth/Tests/FIRUserTests.m @@ -399,6 +399,8 @@ static const NSTimeInterval kExpectationTimeout = 1; XCTAssertEqual(unarchivedUser.anonymous, user.anonymous); XCTAssertEqual(unarchivedUser.emailVerified, user.emailVerified); XCTAssertEqualObjects(unarchivedUser.refreshToken, user.refreshToken); + XCTAssertEqualObjects(unarchivedUser.metadata.creationDate, user.metadata.creationDate); + XCTAssertEqualObjects(unarchivedUser.metadata.lastSignInDate, user.metadata.lastSignInDate); XCTAssertEqual(unarchivedUser.providerData.count, user.providerData.count); NSDictionary<NSString *, id<FIRUserInfo>> *unarchivedProviderMap = |