Skip to content

Commit 927dc0f

Browse files
committed
Merge remote-tracking branch 'origin/auth-next' into fei-auth-next-build
2 parents d73949f + 1504aa1 commit 927dc0f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+2276
-627
lines changed

packages-exp/auth-compat-exp/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,19 @@
1616
*/
1717

1818
import firebase from '@firebase/app';
19-
import * as impl from '@firebase/auth-exp/internal';
2019
import { _FirebaseNamespace } from '@firebase/app-types/private';
20+
import * as impl from '@firebase/auth-exp/internal';
2121
import * as externs from '@firebase/auth-types-exp';
2222
import {
2323
Component,
2424
ComponentType,
2525
InstantiationMode
2626
} from '@firebase/component';
27-
import '@firebase/installations';
27+
2828
import { version } from './package.json';
2929
import { Auth } from './src/auth';
30-
import { RecaptchaVerifier } from './src/recaptcha_verifier';
3130
import { Persistence } from './src/persistence';
31+
import { RecaptchaVerifier } from './src/recaptcha_verifier';
3232

3333
const AUTH_TYPE = 'auth';
3434

packages-exp/auth-compat-exp/src/auth.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,24 +15,26 @@
1515
* limitations under the License.
1616
*/
1717

18+
import '@firebase/installations';
19+
1820
import { FirebaseApp } from '@firebase/app-types';
1921
import * as impl from '@firebase/auth-exp/internal';
2022
import * as compat from '@firebase/auth-types';
2123
import * as externs from '@firebase/auth-types-exp';
22-
import '@firebase/installations';
2324
import {
24-
Observer,
25-
Unsubscribe,
2625
ErrorFn,
27-
isIndexedDBAvailable
26+
isIndexedDBAvailable,
27+
Observer,
28+
Unsubscribe
2829
} from '@firebase/util';
30+
31+
import { _validatePersistenceArgument, Persistence } from './persistence';
32+
import { _getClientPlatform, _isPopupRedirectSupported } from './platform';
2933
import { User } from './user';
3034
import {
3135
convertConfirmationResult,
3236
convertCredential
3337
} from './user_credential';
34-
import { _isPopupRedirectSupported, _getClientPlatform } from './platform';
35-
import { Persistence, _validatePersistenceArgument } from './persistence';
3638

3739
export class Auth extends impl.AuthImplCompat<User>
3840
implements compat.FirebaseAuth {
@@ -59,7 +61,7 @@ export class Auth extends impl.AuthImplCompat<User>
5961
sdkClientVersion: impl._getClientVersion(_getClientPlatform())
6062
};
6163

62-
super(app.name, config, User);
64+
super(app, config, User);
6365
this.app = app;
6466

6567
// This promise is intended to float; auth initialization happens in the

packages-exp/auth-exp/demo/src/index.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
fetchSignInMethodsForEmail,
3434
indexedDBLocalPersistence,
3535
initializeAuth,
36+
getAuth,
3637
inMemoryPersistence,
3738
isSignInWithEmailLink,
3839
linkWithCredential,
@@ -1640,10 +1641,7 @@ function onApplyAuthSettingsChange() {
16401641
function initApp() {
16411642
log('Initializing app...');
16421643
app = initializeApp(config);
1643-
auth = initializeAuth(app, {
1644-
persistence: browserSessionPersistence,
1645-
popupRedirectResolver: browserPopupRedirectResolver
1646-
});
1644+
auth = getAuth(app);
16471645

16481646
tempApp = initializeApp(
16491647
{

packages-exp/auth-exp/demo/src/worker/service-worker.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121
* mode.
2222
*/
2323
import { initializeApp } from '@firebase/app-exp';
24-
import { initializeAuth, indexedDBLocalPersistence } from '@firebase/auth-exp';
24+
import { getAuth } from '@firebase/auth-exp';
2525
import { User } from '@firebase/auth-types-exp';
26+
2627
import { config } from '../config';
2728

2829
declare let self: ServiceWorkerGlobalScope;
@@ -38,9 +39,7 @@ const urlsToCache = [
3839

3940
// Initialize the Firebase app in the service worker.
4041
const app = initializeApp(config);
41-
const auth = initializeAuth(app, {
42-
persistence: indexedDBLocalPersistence
43-
});
42+
const auth = getAuth(app);
4443

4544
/**
4645
* Returns a promise that resolves with an ID token if available.

packages-exp/auth-exp/demo/src/worker/web-worker.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,8 @@ import { initializeApp } from '@firebase/app-exp';
1818
import {
1919
createUserWithEmailAndPassword,
2020
fetchSignInMethodsForEmail,
21+
getAuth,
2122
GoogleAuthProvider,
22-
initializeAuth,
23-
inMemoryPersistence,
2423
signInAnonymously,
2524
signInWithCredential,
2625
signInWithEmailAndPassword,
@@ -37,9 +36,7 @@ import { config } from '../config';
3736

3837
// Initialize the Firebase app in the web worker.
3938
const app = initializeApp(config);
40-
const auth = initializeAuth(app, {
41-
persistence: inMemoryPersistence
42-
});
39+
const auth = getAuth(app);
4340

4441
/**
4542
* Returns a promise that resolves with an ID token if available.

packages-exp/auth-exp/index.node.ts

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,13 @@
2424

2525
import * as fetchImpl from 'node-fetch';
2626

27-
import { registerVersion } from '@firebase/app-exp';
28-
import { name, version } from './package.json';
29-
import { _initializeAuthForClientPlatform } from './src/core/auth/auth_impl';
30-
import { ClientPlatform } from './src/core/util/version';
27+
import { FirebaseApp } from '@firebase/app-types-exp';
28+
import { Auth } from '@firebase/auth-types-exp';
29+
30+
import { initializeAuth } from './src';
31+
import { registerAuth } from './src/core/auth/register';
3132
import { FetchProvider } from './src/core/util/fetch_provider';
33+
import { ClientPlatform } from './src/core/util/version';
3234

3335
// Initialize the fetch polyfill, the types are slightly off so just cast and hope for the best
3436
FetchProvider.initialize(
@@ -40,8 +42,8 @@ FetchProvider.initialize(
4042
// Core functionality shared by all clients
4143
export * from './src';
4244

43-
export const initializeAuth = _initializeAuthForClientPlatform(
44-
ClientPlatform.NODE
45-
);
45+
export function getAuth(app?: FirebaseApp): Auth {
46+
return initializeAuth(app);
47+
}
4648

47-
registerVersion(name, version, 'node');
49+
registerAuth(ClientPlatform.NODE);

packages-exp/auth-exp/index.rn.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,15 @@
2222
* just use index.ts
2323
*/
2424

25-
import { registerVersion } from '@firebase/app-exp';
2625
import { AsyncStorage } from 'react-native';
27-
import { name, version } from './package.json';
28-
import { _initializeAuthForClientPlatform } from './src/core/auth/auth_impl';
29-
import { getReactNativePersistence } from './src/platform_react_native/persistence/react_native';
26+
27+
import { FirebaseApp } from '@firebase/app-types-exp';
28+
import { Auth } from '@firebase/auth-types-exp';
29+
30+
import { initializeAuth } from './src';
31+
import { registerAuth } from './src/core/auth/register';
3032
import { ClientPlatform } from './src/core/util/version';
33+
import { getReactNativePersistence } from './src/platform_react_native/persistence/react_native';
3134

3235
// Core functionality shared by all clients
3336
export * from './src';
@@ -36,8 +39,10 @@ export const reactNativeLocalPersistence = getReactNativePersistence(
3639
AsyncStorage
3740
);
3841

39-
export const initializeAuth = _initializeAuthForClientPlatform(
40-
ClientPlatform.REACT_NATIVE
41-
);
42+
export function getAuth(app?: FirebaseApp): Auth {
43+
return initializeAuth(app, {
44+
persistence: reactNativeLocalPersistence
45+
});
46+
}
4247

43-
registerVersion(name, version, 'rn');
48+
registerAuth(ClientPlatform.REACT_NATIVE);

packages-exp/auth-exp/index.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,24 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { registerVersion } from '@firebase/app-exp';
19-
import { name, version } from './package.json';
20-
import { _initializeAuthForClientPlatform } from './src/core/auth/auth_impl';
18+
import { FirebaseApp } from '@firebase/app-types-exp';
19+
import { Auth } from '@firebase/auth-types-exp';
20+
21+
import { initializeAuth } from './src';
22+
import { registerAuth } from './src/core/auth/register';
2123
import { ClientPlatform } from './src/core/util/version';
24+
import { browserLocalPersistence } from './src/platform_browser/persistence/local_storage';
25+
import { indexedDBLocalPersistence } from './src/platform_browser/persistence/indexed_db';
26+
import { browserPopupRedirectResolver } from './src/platform_browser/popup_redirect';
2227

2328
// Core functionality shared by all clients
2429
export * from './src';
2530

2631
// Additional DOM dependend functionality
2732

2833
// persistence
29-
export {
30-
browserLocalPersistence,
31-
browserSessionPersistence
32-
} from './src/platform_browser/persistence/browser';
34+
export { browserLocalPersistence } from './src/platform_browser/persistence/local_storage';
35+
export { browserSessionPersistence } from './src/platform_browser/persistence/session_storage';
3336
export { indexedDBLocalPersistence } from './src/platform_browser/persistence/indexed_db';
3437

3538
// providers
@@ -60,8 +63,11 @@ export { browserPopupRedirectResolver } from './src/platform_browser/popup_redir
6063
// MFA
6164
export { PhoneMultiFactorGenerator } from './src/platform_browser/mfa/assertions/phone';
6265

63-
export const initializeAuth = _initializeAuthForClientPlatform(
64-
ClientPlatform.BROWSER
65-
);
66+
export function getAuth(app?: FirebaseApp): Auth {
67+
return initializeAuth(app, {
68+
popupRedirectResolver: browserPopupRedirectResolver,
69+
persistence: [indexedDBLocalPersistence, browserLocalPersistence]
70+
});
71+
}
6672

67-
registerVersion(name, version);
73+
registerAuth(ClientPlatform.BROWSER);

packages-exp/auth-exp/index.webworker.ts

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,42 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { registerVersion } from '@firebase/app-exp';
19-
import { name, version } from './package.json';
20-
import { _initializeAuthForClientPlatform } from './src/core/auth/auth_impl';
18+
import { _getProvider, getApp } from '@firebase/app-exp';
19+
import { Auth } from '@firebase/auth-types-exp';
20+
21+
import { AuthImpl } from './src/core/auth/auth_impl';
22+
import { _initializeAuthInstance } from './src/core/auth/initialize';
23+
import { _AUTH_COMPONENT_NAME, registerAuth } from './src/core/auth/register';
24+
import { Persistence } from './src/core/persistence';
25+
import { _getInstance } from './src/core/util/instantiator';
2126
import { ClientPlatform } from './src/core/util/version';
27+
import { indexedDBLocalPersistence } from './src/platform_browser/persistence/indexed_db';
2228

2329
// Core functionality shared by all clients
2430
export * from './src';
2531

26-
export const initializeAuth = _initializeAuthForClientPlatform(
27-
ClientPlatform.WORKER
28-
);
32+
// persistence
33+
export { indexedDBLocalPersistence } from './src/platform_browser/persistence/indexed_db';
34+
35+
registerAuth(ClientPlatform.WORKER);
36+
37+
export function getAuth(app = getApp()): Auth {
38+
// Unlike the other environments, we need to explicitly check if indexedDb is
39+
// available. That means doing the whole rigamarole
40+
const auth = _getProvider(
41+
app,
42+
_AUTH_COMPONENT_NAME
43+
).getImmediate() as AuthImpl;
44+
45+
// This promise is intended to float; auth initialization happens in the
46+
// background, meanwhile the auth object may be used by the app.
47+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
48+
_getInstance<Persistence>(indexedDBLocalPersistence)
49+
._isAvailable()
50+
.then(avail => {
51+
const deps = avail ? { persistence: indexedDBLocalPersistence } : {};
52+
_initializeAuthInstance(auth, deps);
53+
});
2954

30-
registerVersion(name, version, 'webworker');
55+
return auth;
56+
}

packages-exp/auth-exp/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"dependencies": {
4040
"@firebase/logger": "0.2.6",
4141
"@firebase/util": "0.3.0",
42+
"@firebase/component": "0.1.17",
4243
"@firebase/auth-types-exp": "0.0.800",
4344
"node-fetch": "2.6.0",
4445
"tslib": "^1.11.1"

0 commit comments

Comments
 (0)