Fix filtered get() cache
Fixed issue where get() would return incorrect results if you had a filtered get() and an event listener onValue() on the same path, and get() would override the data received by the push received by onValue() yielding incorrect results.
The fix below replicates the logic behind onValue onlyOnce by adding the new event to the SyncTree with the new node, propagating events, and then removing the event from the tree.
🦋 Changeset detected
Latest commit: b4c6eb6bc21883ec475d0d4af3acd742df41e8e1
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 3 packages
| Name | Type |
|---|---|
| @firebase/database | Patch |
| @firebase/database-compat | Patch |
| firebase | 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
This should also fix #6397
Size Report 1
Affected Products
@firebase/appType Base (6a17eb6) Merge (c1df113) Diff browser 13.9 kB 14.1 kB +204 B (+1.5%) esm5 18.1 kB 18.4 kB +246 B (+1.4%) main 19.1 kB 19.3 kB +242 B (+1.3%) module 13.9 kB 14.1 kB +204 B (+1.5%) @firebase/databaseType Base (6a17eb6) Merge (c1df113) Diff browser 248 kB 248 kB -648 B (-0.3%) esm5 276 kB 276 kB -574 B (-0.2%) main 282 kB 281 kB -574 B (-0.2%) module 248 kB 248 kB -648 B (-0.3%) @firebase/database-compat/standaloneType Base (6a17eb6) Merge (c1df113) Diff main 371 kB 370 kB -574 B (-0.2%) @firebase/firestoreType Base (6a17eb6) Merge (c1df113) Diff browser 264 kB 264 kB +169 B (+0.1%) esm5 327 kB 327 kB +294 B (+0.1%) main 525 kB 525 kB +472 B (+0.1%) module 264 kB 264 kB +169 B (+0.1%) react-native 264 kB 264 kB +169 B (+0.1%) @firebase/firestore-liteType Base (6a17eb6) Merge (c1df113) Diff browser 80.5 kB 80.7 kB +172 B (+0.2%) esm5 96.2 kB 96.5 kB +297 B (+0.3%) main 135 kB 136 kB +446 B (+0.3%) module 80.5 kB 80.7 kB +172 B (+0.2%) react-native 80.7 kB 80.9 kB +172 B (+0.2%) bundle43 size changes
Type Base (6a17eb6) Merge (c1df113) Diff analytics (logEvent) 41.8 kB 41.9 kB +110 B (+0.3%) app-check (CustomProvider) 35.4 kB 35.5 kB +110 B (+0.3%) app-check (ReCaptchaEnterpriseProvider) 37.6 kB 37.7 kB +110 B (+0.3%) app-check (ReCaptchaV3Provider) 37.6 kB 37.7 kB +110 B (+0.3%) auth (Anonymous) 66.3 kB 66.4 kB +110 B (+0.2%) auth (EmailAndPassword) 70.4 kB 70.5 kB +110 B (+0.2%) auth (GoogleFBTwitterGitHubPopup) 90.3 kB 90.4 kB +110 B (+0.1%) auth (GooglePopup) 90.0 kB 90.1 kB +110 B (+0.1%) auth (GoogleRedirect) 90.2 kB 90.3 kB +110 B (+0.1%) auth (Phone) 76.5 kB 76.6 kB +110 B (+0.1%) database (Append to a list of data) 145 kB 145 kB +110 B (+0.1%) database (Filtering data) 144 kB 144 kB +110 B (+0.1%) database (Listen for child events) 160 kB 160 kB -120 B (-0.1%) database (Listen for value events + Detach listeners) 160 kB 160 kB -120 B (-0.1%) database (Listen for value events) 160 kB 160 kB -120 B (-0.1%) database (Read data once) 156 kB 159 kB +2.77 kB (+1.8%) database (Save data as transactions) 162 kB 162 kB -120 B (-0.1%) database (Sort data) 145 kB 145 kB +110 B (+0.1%) database (Write data) 144 kB 144 kB +110 B (+0.1%) firestore (Persistence) 274 kB 274 kB +280 B (+0.1%) firestore (Query Cursors) 211 kB 211 kB +273 B (+0.1%) firestore (Query) 212 kB 212 kB +273 B (+0.1%) firestore (Read data once) 200 kB 200 kB +273 B (+0.1%) firestore (Realtime updates) 202 kB 203 kB +273 B (+0.1%) firestore (Transaction) 184 kB 184 kB +273 B (+0.1%) firestore (Write data) 184 kB 184 kB +273 B (+0.1%) firestore-lite (Query Cursors) 67.9 kB 68.2 kB +282 B (+0.4%) firestore-lite (Query) 71.1 kB 71.4 kB +282 B (+0.4%) firestore-lite (Read data once) 55.5 kB 55.8 kB +279 B (+0.5%) firestore-lite (Transaction) 80.1 kB 80.3 kB +282 B (+0.4%) firestore-lite (Write data) 65.3 kB 65.5 kB +282 B (+0.4%) functions (call) 29.2 kB 29.3 kB +110 B (+0.4%) messaging (send + receive) 45.1 kB 45.3 kB +110 B (+0.2%) performance (trace) 49.6 kB 49.7 kB +110 B (+0.2%) remote-config (getAndFetch) 44.2 kB 44.3 kB +110 B (+0.2%) storage (getBytes) 37.5 kB 37.6 kB +110 B (+0.3%) storage (getDownloadURL) 39.6 kB 39.7 kB +110 B (+0.3%) storage (getMetadata) 39.0 kB 39.1 kB +110 B (+0.3%) storage (list + listAll) 38.4 kB 38.6 kB +110 B (+0.3%) storage (updateMetadata) 39.3 kB 39.4 kB +110 B (+0.3%) storage (uploadBytes) 43.8 kB 43.9 kB +110 B (+0.3%) storage (uploadBytesResumable) 53.3 kB 53.4 kB +110 B (+0.2%) storage (uploadString) 44.0 kB 44.2 kB +110 B (+0.2%) firebaseType Base (6a17eb6) Merge (c1df113) Diff firebase-app-compat.js 27.7 kB 27.8 kB +90 B (+0.3%) firebase-app.js 87.4 kB 87.7 kB +334 B (+0.4%) firebase-compat.js 794 kB 794 kB -147 B (-0.0%) firebase-database-compat.js 166 kB 166 kB -413 B (-0.2%) firebase-database.js 606 kB 606 kB -397 B (-0.1%) firebase-firestore-compat.js 314 kB 314 kB +170 B (+0.1%) firebase-firestore-lite.js 267 kB 267 kB +399 B (+0.1%) firebase-firestore.js 851 kB 852 kB +396 B (+0.0%) firebase-performance-standalone-compat.es2017.js 87.5 kB 87.6 kB +104 B (+0.1%) firebase-performance-standalone-compat.js 65.3 kB 65.4 kB +104 B (+0.2%)
Test Logs