stackOverflow
https://stackoverflow.com/questions/60703508/what-is-the-difference-between-valuechanges-and-snapshotchanges