Data changed is triggered whenever the app detects a difference between the local firebase and the cloud. If you turn off Persist, you get Data Changed triggers at app launch. Otherwise, you only get the event when a change is detected by the app (because of the way this works, checking local and cloud, it’s not fully reliable in case of bad network connection).
Hopefully this answers your question.