Skip to content

Commit 6a013fa

Browse files
authored
FIS getAuthToken implementation. (#769)
* FIS getAuthToken implementation. * FIS getAuthToken implementation. * 1. Addressing Ciaran's comments 2. Renaming InstallationTokenResult TokenExpirationTimestampMillis field to TokenExpirationInSecs * 1. Addressing Ciaran's comments 2. Renaming InstallationTokenResult TokenExpirationTimestampMillis field to TokenExpirationInSecs * Updated IntDef usage in firebase-installations * Using CountDownLatch to await instead of executor.awaitTermination * Addressing Di's comments. * Addressing Di's comments. * Addressing Ciaran's comments to replace latch with a custom listener. * Adding onSuccess to AwaitListener. * Cleaning up the code as per the ciaran's comments. * Addressing Di's comments. * 1. Handling multiple calls to getAUthToken() 2. Minor code changes as per the offline discussion with Rayo * Fixing api-information presubmit check. * updating api.txt for firbase-installations-interop * Addressing Ciaran's comments. * Fixing check-changed - GoogleJavaFormat error. * Addressing ciaran`s comments * nit fixes to executor : use unblocking queue.
1 parent 7ed78a4 commit 6a013fa

File tree

10 files changed

+545
-55
lines changed

10 files changed

+545
-55
lines changed

firebase-installations-interop/api.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ package com.google.firebase.installations {
55
ctor public InstallationTokenResult();
66
method @NonNull public static com.google.firebase.installations.InstallationTokenResult.Builder builder();
77
method @NonNull public abstract String getToken();
8-
method @NonNull public abstract long getTokenExpirationTimestampMillis();
8+
method @NonNull public abstract long getTokenExpirationInSecs();
99
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder toBuilder();
1010
}
1111

1212
public abstract static class InstallationTokenResult.Builder {
1313
ctor public InstallationTokenResult.Builder();
1414
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult build();
1515
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setToken(@NonNull String);
16-
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationTimestampMillis(@NonNull long);
16+
method @NonNull public abstract com.google.firebase.installations.InstallationTokenResult.Builder setTokenExpirationInSecs(long);
1717
}
1818

1919
}

firebase-installations-interop/src/main/java/com/google/firebase/installations/FirebaseInstallationsApi.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414

1515
package com.google.firebase.installations;
1616

17+
import static java.lang.annotation.RetentionPolicy.SOURCE;
18+
19+
import androidx.annotation.IntDef;
1720
import com.google.android.gms.tasks.Task;
21+
import java.lang.annotation.Retention;
1822

1923
/**
2024
* This is an interface of {@code FirebaseInstallations} that is only exposed to 2p via component
@@ -24,14 +28,29 @@
2428
*/
2529
public interface FirebaseInstallationsApi {
2630

31+
/** Specifies the options to get a FIS AuthToken. */
32+
@IntDef({DO_NOT_FORCE_REFRESH, FORCE_REFRESH})
33+
@Retention(SOURCE)
34+
@interface AuthTokenOption {}
35+
/**
36+
* AuthToken is not refreshed until requested by the developer or if one doesn't exist, is expired
37+
* or about to expire.
38+
*/
39+
int DO_NOT_FORCE_REFRESH = 0;
40+
/**
41+
* AuthToken is forcefully refreshed on calling the {@link
42+
* FirebaseInstallationsApi#getAuthToken(int)}.
43+
*/
44+
int FORCE_REFRESH = 1;
45+
2746
/**
2847
* Async function that returns a globally unique identifier of this Firebase app installation.
2948
* This is a url-safe base64 string of a 128-bit integer.
3049
*/
3150
Task<String> getId();
3251

3352
/** Async function that returns a auth token(public key) of this Firebase app installation. */
34-
Task<InstallationTokenResult> getAuthToken(boolean forceRefresh);
53+
Task<InstallationTokenResult> getAuthToken(@AuthTokenOption int authTokenOption);
3554

3655
/**
3756
* Async function that deletes this Firebase app installation from Firebase backend. This call

firebase-installations-interop/src/main/java/com/google/firebase/installations/InstallationTokenResult.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ public abstract class InstallationTokenResult {
2525
@NonNull
2626
public abstract String getToken();
2727
/**
28-
* The amount of time, in milliseconds, before the auth-token expires for this Firebase
29-
* Installation.
28+
* The amount of time, in seconds, before the auth-token expires for this Firebase Installation.
3029
*/
3130
@NonNull
32-
public abstract long getTokenExpirationTimestampMillis();
31+
public abstract long getTokenExpirationInSecs();
3332

3433
@NonNull
3534
public abstract Builder toBuilder();
@@ -46,7 +45,7 @@ public abstract static class Builder {
4645
public abstract Builder setToken(@NonNull String value);
4746

4847
@NonNull
49-
public abstract Builder setTokenExpirationTimestampMillis(@NonNull long value);
48+
public abstract Builder setTokenExpirationInSecs(long value);
5049

5150
@NonNull
5251
public abstract InstallationTokenResult build();

firebase-installations/api.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.google.firebase.installations {
33

44
public class FirebaseInstallations {
55
method @NonNull public Task<Void> delete();
6-
method @NonNull public Task<InstallationTokenResult> getAuthToken(boolean);
6+
method @NonNull public Task<InstallationTokenResult> getAuthToken(int);
77
method @NonNull public Task<String> getId();
88
method @NonNull public static com.google.firebase.installations.FirebaseInstallations getInstance();
99
method @NonNull public static com.google.firebase.installations.FirebaseInstallations getInstance(@NonNull FirebaseApp);

0 commit comments

Comments
 (0)