aboutsummaryrefslogtreecommitdiffhomepage
path: root/Example
diff options
context:
space:
mode:
authorGravatar Xiangtian Dai <xiangtian@google.com>2017-09-26 13:17:41 -0700
committerGravatar GitHub <noreply@github.com>2017-09-26 13:17:41 -0700
commit06fbbd8ee01ece0ee4d4599f3abcaf544b2f1a99 (patch)
tree4a085c1977892fe0016a60aefce2f3e2dafd9705 /Example
parentdc36b0a5d790b11b2701d947aaeef9769d06eb36 (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.m26
-rw-r--r--Example/Auth/Sample/UserInfoViewController.m3
-rw-r--r--Example/Auth/SwiftSample/Stubs.swift10
-rw-r--r--Example/Auth/Tests/FIRUserTests.m2
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 =