Currently we make use the same change observers for both Firestore and RTDB. However, Firestore only supports observing documents, not subpaths within documents. This means we unnecessarily traverse every key within each document written to Firestore, when instead we can just do simple checks like 'did this document exist before'.
This PR adds Firestore specific change observers that do these much simpler checks and should avoid extraneous work traversing each document.
Currently we make use the same change observers for both Firestore and RTDB. However, Firestore only supports observing documents, not subpaths within documents. This means we unnecessarily traverse every key within each document written to Firestore, when instead we can just do simple checks like 'did this document exist before'.
This PR adds Firestore specific change observers that do these much simpler checks and should avoid extraneous work traversing each document.