Skip to content

Commit 5796037

Browse files
committed
Add initializeAppCheck()`
1 parent d18e786 commit 5796037

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

packages-exp/app-check-exp/src/api.ts

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,34 @@ export function getAppCheck(app: FirebaseApp = getApp()): AppCheck {
4444
app,
4545
'app-check-exp'
4646
);
47-
const appCheckInstance = appCheckProvider.getImmediate();
48-
return appCheckInstance;
47+
48+
if (appCheckProvider.isInitialized()) {
49+
return appCheckProvider.getImmediate();
50+
}
51+
return initializeAppCheck(app);
52+
}
53+
54+
interface AppCheckOptions {
55+
provider: AppCheckProvider;
56+
isTokenAutoRefreshEnabled?: boolean;
57+
}
58+
59+
export function initializeAppCheck(
60+
app: FirebaseApp = getApp(),
61+
options?: AppCheckOptions
62+
): AppCheck {
63+
app = getModularInstance(app);
64+
const provider = _getProvider(app, 'app-check-exp');
65+
66+
if (provider.isInitialized()) {
67+
throw ERROR_FACTORY.create(AppCheckError.ALREADY_INITIALIZED, {
68+
appName: app.name
69+
});
70+
}
71+
72+
const appCheck = provider.initialize({ options });
73+
74+
return appCheck;
4975
}
5076

5177
/**

packages-exp/app-check-exp/src/errors.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { ErrorFactory, ErrorMap } from '@firebase/util';
1919

2020
export const enum AppCheckError {
2121
ALREADY_ACTIVATED = 'already-activated',
22+
ALREADY_INITIALIZED = 'already-initialized',
2223
USE_BEFORE_ACTIVATION = 'use-before-activation',
2324
FETCH_NETWORK_ERROR = 'fetch-network-error',
2425
FETCH_PARSE_ERROR = 'fetch-parse-error',
@@ -34,6 +35,9 @@ const ERRORS: ErrorMap<AppCheckError> = {
3435
'You are trying to activate AppCheck for FirebaseApp {$appName}, ' +
3536
'while it is already activated. ' +
3637
'AppCheck can only be activated once.',
38+
[AppCheckError.ALREADY_INITIALIZED]:
39+
'You have already called initializeAppCheck() for FirebaseApp {$appName}, ' +
40+
'initializeAppCheck() can only be called once.',
3741
[AppCheckError.USE_BEFORE_ACTIVATION]:
3842
'AppCheck is being used before activate() is called for FirebaseApp {$appName}. ' +
3943
'Please make sure you call activate() before instantiating other Firebase services.',
@@ -56,6 +60,7 @@ const ERRORS: ErrorMap<AppCheckError> = {
5660

5761
interface ErrorParams {
5862
[AppCheckError.ALREADY_ACTIVATED]: { appName: string };
63+
[AppCheckError.ALREADY_INITIALIZED]: { appName: string };
5964
[AppCheckError.USE_BEFORE_ACTIVATION]: { appName: string };
6065
[AppCheckError.FETCH_NETWORK_ERROR]: { originalErrorMessage: string };
6166
[AppCheckError.FETCH_PARSE_ERROR]: { originalErrorMessage: string };

0 commit comments

Comments
 (0)