Noop batch causes storage events to fire twice #639
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While going further down the history rabbit hole, I discovered another issue, this time not related to history, and I'm still trying to figure out the best approach to fix it.
When performing changes inside
batch
that are essentially noops (i.e., inserting and immediately removing the same list item), we fire storage events for those noop changes twice (once for the local change and once when we receive the "confirmation ops" from the server).This stems from how we filter out remote updates when handling remote changes: We ignore all operations that don't cause a change. This works fine for most cases, but not when we insert and remove the same item in the same batch because that batch will always cause an update (inserting and removing the item).