@@ -22,6 +22,7 @@ import { AuthInternal } from '../../model/auth';
22
22
import { UserInternal } from '../../model/user' ;
23
23
import { _assert } from '../util/assert' ;
24
24
import { AuthErrorCode } from '../errors' ;
25
+ import { _logWarn } from '../util/log' ;
25
26
26
27
interface TokenListener {
27
28
( tok : string | null ) : unknown ;
@@ -44,6 +45,12 @@ export class AuthInterop implements FirebaseAuthInternal {
44
45
) : Promise < { accessToken : string } | null > {
45
46
this . assertAuthConfigured ( ) ;
46
47
await this . auth . _initializationPromise ;
48
+ if ( this . auth . tenantConfig ) {
49
+ if ( forceRefresh ) {
50
+ _logWarn ( "Refresh token is not a valid operation for Regional Auth instance initialized." ) ;
51
+ }
52
+ return this . getTokenForRegionalAuth ( ) ;
53
+ }
47
54
if ( ! this . auth . currentUser ) {
48
55
return null ;
49
56
}
@@ -52,27 +59,6 @@ export class AuthInterop implements FirebaseAuthInternal {
52
59
return { accessToken } ;
53
60
}
54
61
55
- async getFirebaseToken ( ) : Promise < { accessToken : string } | null > {
56
- this . assertAuthConfigured ( ) ;
57
- await this . auth . _initializationPromise ;
58
- this . assertRegionalAuthConfigured ( ) ;
59
- if ( ! this . auth . firebaseToken ) {
60
- return null ;
61
- }
62
-
63
- if (
64
- ! this . auth . firebaseToken . expirationTime ||
65
- Date . now ( ) >
66
- this . auth . firebaseToken . expirationTime - this . TOKEN_EXPIRATION_BUFFER
67
- ) {
68
- await this . auth . _updateFirebaseToken ( null ) ;
69
- return null ;
70
- }
71
-
72
- const accessToken = await this . auth . firebaseToken . token ;
73
- return { accessToken } ;
74
- }
75
-
76
62
addAuthTokenListener ( listener : TokenListener ) : void {
77
63
this . assertAuthConfigured ( ) ;
78
64
if ( this . internalListeners . has ( listener ) ) {
@@ -118,4 +104,22 @@ export class AuthInterop implements FirebaseAuthInternal {
118
104
this . auth . _stopProactiveRefresh ( ) ;
119
105
}
120
106
}
107
+
108
+ private async getTokenForRegionalAuth ( ) : Promise < { accessToken : string } | null > {
109
+ if ( ! this . auth . firebaseToken ) {
110
+ return null ;
111
+ }
112
+
113
+ if (
114
+ ! this . auth . firebaseToken . expirationTime ||
115
+ Date . now ( ) >
116
+ this . auth . firebaseToken . expirationTime - this . TOKEN_EXPIRATION_BUFFER
117
+ ) {
118
+ await this . auth . _updateFirebaseToken ( null ) ;
119
+ return null ;
120
+ }
121
+
122
+ const accessToken = await this . auth . firebaseToken . token ;
123
+ return { accessToken } ;
124
+ }
121
125
}
0 commit comments