File tree Expand file tree Collapse file tree 2 files changed +7
-9
lines changed
packages/firestore/src/core Expand file tree Collapse file tree 2 files changed +7
-9
lines changed Original file line number Diff line number Diff line change @@ -102,21 +102,19 @@ export class EventManager implements SyncEngineListener {
102
102
103
103
async unlisten ( listener : QueryListener ) : Promise < void > {
104
104
const query = listener . query ;
105
- let lastListen = false ;
106
105
107
106
const queryInfo = this . queries . get ( query ) ;
108
107
if ( queryInfo ) {
109
108
const i = queryInfo . listeners . indexOf ( listener ) ;
110
109
if ( i >= 0 ) {
111
- queryInfo . listeners . splice ( i , 1 ) ;
112
- lastListen = queryInfo . listeners . length === 0 ;
110
+ if ( queryInfo . listeners . length > 1 ) {
111
+ queryInfo . listeners . splice ( i , 1 ) ;
112
+ } else {
113
+ await this . syncEngine . unlisten ( query ) ;
114
+ this . queries . delete ( query ) ;
115
+ }
113
116
}
114
117
}
115
-
116
- if ( lastListen ) {
117
- this . queries . delete ( query ) ;
118
- return this . syncEngine . unlisten ( query ) ;
119
- }
120
118
}
121
119
122
120
onWatchChange ( viewSnaps : ViewSnapshot [ ] ) : void {
Original file line number Diff line number Diff line change @@ -404,7 +404,7 @@ export class FirestoreClient {
404
404
if ( this . clientTerminated ) {
405
405
return ;
406
406
}
407
- this . asyncQueue . enqueueAndForget ( ( ) => {
407
+ this . asyncQueue . enqueueRetryable ( ( ) => {
408
408
return this . eventMgr . unlisten ( listener ) ;
409
409
} ) ;
410
410
}
You can’t perform that action at this time.
0 commit comments