@@ -264,7 +264,6 @@ export class MutationMetadata {
264
264
* serialization. The TargetId is omitted as it is encoded as part of the key.
265
265
*/
266
266
interface QueryTargetStateSchema {
267
- lastUpdateTime : number ;
268
267
state : QueryTargetState ;
269
268
error ?: { code : string ; message : string } ; // Only set when state === 'rejected'
270
269
}
@@ -277,7 +276,6 @@ interface QueryTargetStateSchema {
277
276
export class QueryTargetMetadata {
278
277
constructor (
279
278
readonly targetId : TargetId ,
280
- readonly lastUpdateTime : Date ,
281
279
readonly state : QueryTargetState ,
282
280
readonly error ?: FirestoreError
283
281
) {
@@ -299,7 +297,6 @@ export class QueryTargetMetadata {
299
297
300
298
let validData =
301
299
typeof targetState === 'object' &&
302
- isSafeInteger ( targetState . lastUpdateTime ) &&
303
300
[ 'not-current' , 'current' , 'rejected' ] . indexOf ( targetState . state ) !==
304
301
- 1 &&
305
302
( targetState . error === undefined ||
@@ -322,7 +319,6 @@ export class QueryTargetMetadata {
322
319
if ( validData ) {
323
320
return new QueryTargetMetadata (
324
321
targetId ,
325
- new Date ( targetState . lastUpdateTime ) ,
326
322
targetState . state ,
327
323
firestoreError
328
324
) ;
@@ -337,7 +333,6 @@ export class QueryTargetMetadata {
337
333
338
334
toLocalStorageJSON ( ) : string {
339
335
const targetState : QueryTargetStateSchema = {
340
- lastUpdateTime : this . lastUpdateTime . getTime ( ) ,
341
336
state : this . state
342
337
} ;
343
338
@@ -358,7 +353,6 @@ export class QueryTargetMetadata {
358
353
* key.
359
354
*/
360
355
interface ClientStateSchema {
361
- lastUpdateTime : number ;
362
356
activeTargetIds : number [ ] ;
363
357
}
364
358
@@ -368,7 +362,6 @@ interface ClientStateSchema {
368
362
*/
369
363
// Visible for testing.
370
364
export interface ClientState {
371
- readonly lastUpdateTime : Date ;
372
365
readonly activeTargetIds : TargetIdSet ;
373
366
}
374
367
@@ -379,7 +372,6 @@ export interface ClientState {
379
372
class RemoteClientState implements ClientState {
380
373
private constructor (
381
374
readonly clientId : ClientId ,
382
- readonly lastUpdateTime : Date ,
383
375
readonly activeTargetIds : TargetIdSet
384
376
) { }
385
377
@@ -395,7 +387,6 @@ class RemoteClientState implements ClientState {
395
387
396
388
let validData =
397
389
typeof clientState === 'object' &&
398
- isSafeInteger ( clientState . lastUpdateTime ) &&
399
390
clientState . activeTargetIds instanceof Array ;
400
391
401
392
let activeTargetIdsSet = targetIdSet ( ) ;
@@ -408,11 +399,7 @@ class RemoteClientState implements ClientState {
408
399
}
409
400
410
401
if ( validData ) {
411
- return new RemoteClientState (
412
- clientId ,
413
- new Date ( clientState . lastUpdateTime ) ,
414
- activeTargetIdsSet
415
- ) ;
402
+ return new RemoteClientState ( clientId , activeTargetIdsSet ) ;
416
403
} else {
417
404
error (
418
405
LOG_TAG ,
@@ -482,11 +469,6 @@ export class SharedOnlineState {
482
469
// Visible for testing.
483
470
export class LocalClientState implements ClientState {
484
471
activeTargetIds = targetIdSet ( ) ;
485
- lastUpdateTime : Date ;
486
-
487
- constructor ( ) {
488
- this . lastUpdateTime = new Date ( ) ;
489
- }
490
472
491
473
addQueryTarget ( targetId : TargetId ) : void {
492
474
assert (
@@ -500,18 +482,12 @@ export class LocalClientState implements ClientState {
500
482
this . activeTargetIds = this . activeTargetIds . delete ( targetId ) ;
501
483
}
502
484
503
- /** Sets the update time to the current time. */
504
- refreshLastUpdateTime ( ) : void {
505
- this . lastUpdateTime = new Date ( ) ;
506
- }
507
-
508
485
/**
509
486
* Converts this entry into a JSON-encoded format we can use for LocalStorage.
510
487
* Does not encode `clientId` as it is part of the key in LocalStorage.
511
488
*/
512
489
toLocalStorageJSON ( ) : string {
513
490
const data : ClientStateSchema = {
514
- lastUpdateTime : this . lastUpdateTime . getTime ( ) ,
515
491
activeTargetIds : this . activeTargetIds . toArray ( )
516
492
} ;
517
493
return JSON . stringify ( data ) ;
@@ -849,9 +825,6 @@ export class WebStorageSharedClientState implements SharedClientState {
849
825
}
850
826
851
827
private persistClientState ( ) : void {
852
- // TODO(multitab): Consider rate limiting/combining state updates for
853
- // clients that frequently update their client state.
854
- this . localClientState . refreshLastUpdateTime ( ) ;
855
828
this . setItem (
856
829
this . localClientStorageKey ,
857
830
this . localClientState . toLocalStorageJSON ( )
@@ -891,14 +864,8 @@ export class WebStorageSharedClientState implements SharedClientState {
891
864
state : QueryTargetState ,
892
865
error ?: FirestoreError
893
866
) : void {
894
- const targetMetadata = new QueryTargetMetadata (
895
- targetId ,
896
- /* lastUpdateTime= */ new Date ( ) ,
897
- state ,
898
- error
899
- ) ;
900
-
901
867
const targetKey = this . toLocalStorageQueryTargetMetadataKey ( targetId ) ;
868
+ const targetMetadata = new QueryTargetMetadata ( targetId , state , error ) ;
902
869
this . setItem ( targetKey , targetMetadata . toLocalStorageJSON ( ) ) ;
903
870
}
904
871
0 commit comments