Fix metadata sync issue for cache listeners in multi-tab
Issue: when creating a snapshot listener, it's QueryTargetState is simply set to "not-current" if it is listening to cache only. This is going to create out-of-sync metadata in persistence multi-tabs:
scenario:
- Create a snapshot listener in primary client, listen to server
- It raised a snapshot from server, which is up-to-date (fromCache=false), and store it into cache
- Listen to same query with source==cache in secondary tab
- Since the cached result is up-to-date, and the cache listener in the secondary tab is sharing the date with the server listener in the primary tab, the raised snapshot should be
currentas well (fromCache=false)
🦋 Changeset detected
Latest commit: 6c3ef5bf967a0a06702120295a74838898283e00
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 3 packages
| Name | Type |
|---|---|
| @firebase/firestore | Patch |
| firebase | Patch |
| @firebase/firestore-compat | Patch |
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR
Could you please provide a PR description. A detail of the change, a link to the bug, etc? Thanks!
Size Report 1
Affected Products
@firebase/appType Base (ecadbe3) Merge (9a793e5) Diff browser 18.1 kB 18.3 kB +141 B (+0.8%) esm5 23.7 kB 23.8 kB +142 B (+0.6%) main 24.8 kB 24.9 kB +135 B (+0.5%) module 18.1 kB 18.3 kB +141 B (+0.8%) @firebase/firestoreType Base (ecadbe3) Merge (9a793e5) Diff browser 378 kB 378 kB +2 B (+0.0%) esm5 363 kB 363 kB +34 B (+0.0%) main 582 kB 582 kB +88 B (+0.0%) module 378 kB 378 kB +2 B (+0.0%) react-native 378 kB 378 kB +2 B (+0.0%) @firebase/utilType Base (ecadbe3) Merge (9a793e5) Diff browser 23.1 kB 23.2 kB +145 B (+0.6%) esm5 24.7 kB 24.9 kB +145 B (+0.6%) main 30.5 kB 30.7 kB +219 B (+0.7%) module 23.1 kB 23.2 kB +145 B (+0.6%) bundleType Base (ecadbe3) Merge (9a793e5) Diff firestore (CSI Auto Indexing Disable and Delete) 268 kB 268 kB +8 B (+0.0%) firestore (CSI Auto Indexing Enable) 268 kB 268 kB +8 B (+0.0%) firestore (Persistence) 303 kB 303 kB +16 B (+0.0%) firestore (Query Cursors) 240 kB 240 kB -6 B (-0.0%) firestore (Query) 238 kB 238 kB -6 B (-0.0%) firestore (Read data once) 226 kB 226 kB -6 B (-0.0%) firestore (Read Write w Persistence) 322 kB 322 kB +2 B (+0.0%) firestore (Realtime updates) 228 kB 228 kB -6 B (-0.0%) firestore (Transaction) 205 kB 205 kB +8 B (+0.0%) firestore (Write data) 205 kB 205 kB +8 B (+0.0%) firebaseType Base (ecadbe3) Merge (9a793e5) Diff firebase-app-compat.js 31.4 kB 31.7 kB +235 B (+0.7%) firebase-app.js 102 kB 102 kB +395 B (+0.4%) firebase-compat.js 786 kB 786 kB +251 B (+0.0%) firebase-firestore-compat.js 341 kB 341 kB +9 B (+0.0%) firebase-firestore.js 437 kB 437 kB +2 B (+0.0%) firebase-performance-standalone-compat.es2017.js 93.3 kB 93.5 kB +236 B (+0.3%) firebase-performance-standalone-compat.js 70.4 kB 70.6 kB +226 B (+0.3%)
Test Logs
Size Analysis Report 1
Affected Products
@firebase/appinitializeServerAppSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 11.3 kB 11.4 kB +141 B (+1.2%) size-with-ext-deps 25.1 kB 25.4 kB +236 B (+0.9%) External Dependency
Module Base (ecadbe3) Merge (9a793e5) Diff @firebase/utilErrorFactory FirebaseError base64urlEncodeWithoutPadding isBrowser isIndexedDBAvailable validateIndexedDBOpenable
ErrorFactory FirebaseError base64urlEncodeWithoutPadding isBrowser isIndexedDBAvailable isWebWorker validateIndexedDBOpenable
+ isWebWorker
@firebase/firestoreaddDocSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 124 kB 124 kB +8 B (+0.0%) size-with-ext-deps 196 kB 196 kB +8 B (+0.0%) deleteAllPersistentCacheIndexesSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 87.6 kB 87.6 kB +8 B (+0.0%) size-with-ext-deps 159 kB 159 kB +8 B (+0.0%) deleteDocSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 115 kB 115 kB +8 B (+0.0%) size-with-ext-deps 186 kB 186 kB +8 B (+0.0%) disableNetworkSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 103 kB 103 kB +8 B (+0.0%) size-with-ext-deps 175 kB 175 kB +8 B (+0.0%) disablePersistentCacheIndexAutoCreationSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 87.5 kB 87.5 kB +8 B (+0.0%) size-with-ext-deps 159 kB 159 kB +8 B (+0.0%) enableIndexedDbPersistenceSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 186 kB 186 kB +8 B (+0.0%) size-with-ext-deps 258 kB 258 kB +8 B (+0.0%) enableMultiTabIndexedDbPersistenceSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 222 kB 222 kB +16 B (+0.0%) size-with-ext-deps 294 kB 294 kB +16 B (+0.0%) enableNetworkSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 103 kB 103 kB +8 B (+0.0%) size-with-ext-deps 175 kB 175 kB +8 B (+0.0%) enablePersistentCacheIndexAutoCreationSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 87.5 kB 87.5 kB +8 B (+0.0%) size-with-ext-deps 159 kB 159 kB +8 B (+0.0%) executeWriteSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 114 kB 114 kB +8 B (+0.0%) size-with-ext-deps 186 kB 186 kB +8 B (+0.0%) getAggregateFromServerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 110 kB 110 kB +8 B (+0.0%) size-with-ext-deps 182 kB 182 kB +8 B (+0.0%) getCountFromServerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 111 kB 111 kB +8 B (+0.0%) size-with-ext-deps 182 kB 182 kB +8 B (+0.0%) getDocSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 145 kB 145 kB -6 B (-0.0%) size-with-ext-deps 216 kB 216 kB -6 B (-0.0%) getDocFromCacheSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 95.0 kB 95.0 kB +8 B (+0.0%) size-with-ext-deps 166 kB 166 kB +8 B (+0.0%) getDocFromServerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 145 kB 145 kB -6 B (-0.0%) size-with-ext-deps 216 kB 216 kB -6 B (-0.0%) getDocsSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 146 kB 146 kB -6 B (-0.0%) size-with-ext-deps 218 kB 218 kB -6 B (-0.0%) getDocsFromCacheSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 103 kB 103 kB +8 B (+0.0%) size-with-ext-deps 174 kB 174 kB +8 B (+0.0%) getDocsFromServerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 146 kB 146 kB -6 B (-0.0%) size-with-ext-deps 218 kB 218 kB -6 B (-0.0%) loadBundleSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 113 kB 113 kB +8 B (+0.0%) size-with-ext-deps 184 kB 184 kB +8 B (+0.0%) memoryEagerGarbageCollectorSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 85.6 kB 85.6 kB +8 B (+0.0%) size-with-ext-deps 157 kB 157 kB +8 B (+0.0%) memoryLocalCacheSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 100 kB 100 kB +8 B (+0.0%) size-with-ext-deps 172 kB 172 kB +8 B (+0.0%) memoryLruGarbageCollectorSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 92.1 kB 92.1 kB +8 B (+0.0%) size-with-ext-deps 163 kB 163 kB +8 B (+0.0%) namedQuerySize
Type Base (ecadbe3) Merge (9a793e5) Diff size 88.5 kB 88.5 kB +8 B (+0.0%) size-with-ext-deps 160 kB 160 kB +8 B (+0.0%) onSnapshotSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 147 kB 147 kB -6 B (-0.0%) size-with-ext-deps 219 kB 219 kB -6 B (-0.0%) onSnapshotsInSyncSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 136 kB 136 kB -6 B (-0.0%) size-with-ext-deps 208 kB 208 kB -6 B (-0.0%) persistentLocalCacheSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 184 kB 184 kB +8 B (+0.0%) size-with-ext-deps 255 kB 255 kB +8 B (+0.0%) persistentMultipleTabManagerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 219 kB 219 kB +16 B (+0.0%) size-with-ext-deps 291 kB 291 kB +16 B (+0.0%) persistentSingleTabManagerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 183 kB 183 kB +8 B (+0.0%) size-with-ext-deps 255 kB 255 kB +8 B (+0.0%) runTransactionSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 124 kB 124 kB +8 B (+0.0%) size-with-ext-deps 195 kB 195 kB +8 B (+0.0%) setDocSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 123 kB 123 kB +8 B (+0.0%) size-with-ext-deps 195 kB 195 kB +8 B (+0.0%) setIndexConfigurationSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 91.1 kB 91.1 kB +8 B (+0.0%) size-with-ext-deps 162 kB 162 kB +8 B (+0.0%) updateDocSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 124 kB 124 kB +8 B (+0.0%) size-with-ext-deps 195 kB 195 kB +8 B (+0.0%) waitForPendingWritesSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 104 kB 104 kB +8 B (+0.0%) size-with-ext-deps 175 kB 175 kB +8 B (+0.0%) writeBatchSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 126 kB 126 kB +8 B (+0.0%) size-with-ext-deps 197 kB 197 kB +8 B (+0.0%)
@firebase/utilisBrowserSize
Type Base (ecadbe3) Merge (9a793e5) Diff size 84 B 197 B +113 B (+134.5%) size-with-ext-deps 84 B 197 B +113 B (+134.5%) Dependency
Type Base (ecadbe3) Merge (9a793e5) Diff functions isBrowser
isBrowser isWebWorker
+ isWebWorkerisWebWorkerSize
Type Base (ecadbe3) Merge (9a793e5) Diff size ? 146 B ? (?) size-with-ext-deps ? 146 B ? (?) Dependency
Type Base (ecadbe3) Merge (9a793e5) Diff functions ? isWebWorker
? classes ? ? variables ? ? enums ? ?