diff --git a/firebase-installations-interop/api.txt b/firebase-installations-interop/api.txt index b2a54de1051..99b8e8affa4 100644 --- a/firebase-installations-interop/api.txt +++ b/firebase-installations-interop/api.txt @@ -5,7 +5,8 @@ package com.google.firebase.installations { ctor public InstallationTokenResult(); method @NonNull public static com.google.firebase.installations.InstallationTokenResult.Builder builder(); method @NonNull public abstract String getToken(); - method @NonNull public abstract long getTokenExpirationInSecs(); + method @NonNull public abstract long getTokenCreationTimestamp(); + method @NonNull public abstract long getTokenExpirationTimestamp(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder toBuilder(); } @@ -13,7 +14,8 @@ package com.google.firebase.installations { ctor public InstallationTokenResult.Builder(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult build(); method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setToken(@NonNull String); - method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationInSecs(long); + method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenCreationTimestamp(long); + method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationTimestamp(long); } } diff --git a/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java b/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java index 94266bcc9f2..3dbc02c3e3e 100644 --- a/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java +++ b/firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java @@ -28,7 +28,13 @@ public abstract class InstallationTokenResult { * The amount of time, in seconds, before the auth-token expires for this Firebase Installation. */ @NonNull - public abstract long getTokenExpirationInSecs(); + public abstract long getTokenExpirationTimestamp(); + + /** + * The amount of time, in seconds, when the auth-token was created for this Firebase Installation. + */ + @NonNull + public abstract long getTokenCreationTimestamp(); @NonNull public abstract Builder toBuilder(); @@ -45,7 +51,10 @@ public abstract static class Builder { public abstract Builder setToken(@NonNull String value); @NonNull - public abstract Builder setTokenExpirationInSecs(long value); + public abstract Builder setTokenExpirationTimestamp(long value); + + @NonNull + public abstract Builder setTokenCreationTimestamp(long value); @NonNull public abstract InstallationTokenResult build(); diff --git a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java index ca6e34b761d..a886f3c24bb 100644 --- a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java +++ b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FirebaseInstallationsInstrumentedTest.java @@ -527,7 +527,8 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th (unused) -> InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_3) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build())) .doAnswer( AdditionalAnswers.answersWithDelay( @@ -535,7 +536,8 @@ public void testGetAuthToken_multipleCallsForceRefresh_fetchedNewTokenTwice() th (unused) -> InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_4) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build())) .when(backendClientReturnsOk) .generateAuthToken(anyString(), anyString(), anyString(), anyString()); diff --git a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java index 5645e3a5c56..1728cb56554 100644 --- a/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java +++ b/firebase-installations/src/androidTest/java/com/google/firebase/installations/FisAndroidTestConstants.java @@ -49,13 +49,15 @@ public final class FisAndroidTestConstants { .setAuthToken( InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build()) .build(); public static final InstallationTokenResult TEST_INSTALLATION_TOKEN_RESULT = InstallationTokenResult.builder() .setToken(TEST_AUTH_TOKEN_2) - .setTokenExpirationInSecs(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenExpirationTimestamp(TEST_TOKEN_EXPIRATION_TIMESTAMP) + .setTokenCreationTimestamp(TEST_CREATION_TIMESTAMP_1) .build(); } diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java b/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java index 76961076092..ce1f7de3ac3 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/FirebaseInstallations.java @@ -285,7 +285,7 @@ private Void registerAndSaveFid(PersistedFidEntry persistedFidEntry) .setRegistrationStatus(RegistrationStatus.REGISTERED) .setAuthToken(installationResponse.getAuthToken().getToken()) .setRefreshToken(installationResponse.getRefreshToken()) - .setExpiresInSecs(installationResponse.getAuthToken().getTokenExpirationInSecs()) + .setExpiresInSecs(installationResponse.getAuthToken().getTokenExpirationTimestamp()) .setTokenCreationEpochInSecs(creationTime) .build()); @@ -314,7 +314,7 @@ private InstallationTokenResult fetchAuthTokenFromServer(PersistedFidEntry persi .setRegistrationStatus(RegistrationStatus.REGISTERED) .setAuthToken(tokenResult.getToken()) .setRefreshToken(persistedFidEntry.getRefreshToken()) - .setExpiresInSecs(tokenResult.getTokenExpirationInSecs()) + .setExpiresInSecs(tokenResult.getTokenExpirationTimestamp()) .setTokenCreationEpochInSecs(creationTime) .build()); diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java b/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java index bc9348a344b..583710ccddb 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/GetAuthTokenListener.java @@ -37,7 +37,8 @@ public boolean onStateReached( resultTaskCompletionSource.setResult( InstallationTokenResult.builder() .setToken(persistedFidEntry.getAuthToken()) - .setTokenExpirationInSecs(persistedFidEntry.getExpiresInSecs()) + .setTokenExpirationTimestamp(persistedFidEntry.getExpiresInSecs()) + .setTokenCreationTimestamp(persistedFidEntry.getTokenCreationEpochInSecs()) .build()); return true; } diff --git a/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java b/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java index e1a6facd6f5..ddb43292471 100644 --- a/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java +++ b/firebase-installations/src/main/java/com/google/firebase/installations/remote/FirebaseInstallationServiceClient.java @@ -279,7 +279,7 @@ private InstallationResponse readCreateResponse(HttpsURLConnection conn) throws if (key.equals("token")) { installationTokenResult.setToken(reader.nextString()); } else if (key.equals("expiresIn")) { - installationTokenResult.setTokenExpirationInSecs( + installationTokenResult.setTokenExpirationTimestamp( parseTokenExpirationTimestamp(reader.nextString())); } else { reader.skipValue(); @@ -308,7 +308,7 @@ private InstallationTokenResult readGenerateAuthTokenResponse(HttpsURLConnection if (name.equals("token")) { builder.setToken(reader.nextString()); } else if (name.equals("expiresIn")) { - builder.setTokenExpirationInSecs(parseTokenExpirationTimestamp(reader.nextString())); + builder.setTokenExpirationTimestamp(parseTokenExpirationTimestamp(reader.nextString())); } else { reader.skipValue(); }