I checked: when returned, the snapshots are identical. Web version 9, firewase-database.js version 9.9.1
It turns out that on the client, inside function onValue(), there is a double processing of changes, although there is one request across the network, as far as I could figure out.
Prior to this, in version 9.8.4, processing occurred three thrice.
I did not get deep into the work of the functions of the firebase-database.js module to understand at what point the repetition occurs. If the developers don't find any problems, then I'll debug onValue() more carefully.