@@ -99,6 +99,10 @@ export class FirestoreClient {
99
99
private readonly clientId = AutoId . newId ( ) ;
100
100
private authCredentialListener : CredentialChangeListener < User > = ( ) =>
101
101
Promise . resolve ( ) ;
102
+ private appCheckCredentialListener : (
103
+ appCheckToken : string ,
104
+ user : User
105
+ ) => Promise < void > = ( ) => Promise . resolve ( ) ;
102
106
103
107
offlineComponents ?: OfflineComponentProvider ;
104
108
onlineComponents ?: OnlineComponentProvider ;
@@ -122,8 +126,10 @@ export class FirestoreClient {
122
126
await this . authCredentialListener ( user ) ;
123
127
this . user = user ;
124
128
} ) ;
125
- // Register an empty credentials change listener to activate token refresh.
126
- this . appCheckCredentials . start ( asyncQueue , ( ) => Promise . resolve ( ) ) ;
129
+ this . appCheckCredentials . start ( asyncQueue , newAppCheckToken => {
130
+ logDebug ( LOG_TAG , 'Received new app check token=' , newAppCheckToken ) ;
131
+ return this . appCheckCredentialListener ( newAppCheckToken , this . user ) ;
132
+ } ) ;
127
133
}
128
134
129
135
async getConfiguration ( ) : Promise < ComponentConfiguration > {
@@ -142,6 +148,12 @@ export class FirestoreClient {
142
148
this . authCredentialListener = listener ;
143
149
}
144
150
151
+ setAppCheckTokenChangeListener (
152
+ listener : ( appCheckToken : string , user : User ) => Promise < void >
153
+ ) : void {
154
+ this . appCheckCredentialListener = listener ;
155
+ }
156
+
145
157
/**
146
158
* Checks that the client has not been terminated. Ensures that other methods on
147
159
* this class cannot be called after the client is terminated.
@@ -234,6 +246,9 @@ export async function setOnlineComponentProvider(
234
246
client . setCredentialChangeListener ( user =>
235
247
remoteStoreHandleCredentialChange ( onlineComponentProvider . remoteStore , user )
236
248
) ;
249
+ client . setAppCheckTokenChangeListener ( ( _ , user ) =>
250
+ remoteStoreHandleCredentialChange ( onlineComponentProvider . remoteStore , user )
251
+ ) ;
237
252
client . onlineComponents = onlineComponentProvider ;
238
253
}
239
254
0 commit comments