Ionic toggle 'ghost' states


#1

I have recently experienced really strange behavior of the ion-toggle. The app was a simple registration app for an event. List of 1000+ visitors, 6 iPads running a web/pwa hosted on Firebase server connected to a Firestore.

Each visitor list-item had a toggle. Toggle kiks the function that propagates the state to a database (Firestore).
I have probably made an silly mistake, as the initial database didn’t had “registered” property initialized with false. The desktop Chrome, Android and some iPads once toggled to true properly initialized the registered property and set it to true and propagated the value into Firestore. Some iPads did not recognized the new true state and propagated the null which resulted in ‘nothing’ in the Firestore. Mea culpa.

The weird behavior happened when as the the graphical “turned on” state has not only been propagated to other devices. But this state was also somehow persistent and devices were able to reload the state 700+ registered visitors even if the database was empty (without existing ‘registered’==true property).

  1. Anybody has any idea what kind of information was actually shared between devices?
  2. What was the source of the persistence? The Firestore persistence was turned off.
  3. What iPod (Safari) versions is responsible for sending null instead of true that would match the view?