Q:

How to cache firebase data between different android architecture view models? 

This question is with reference to the excellent series: Using Android Architecture Components with Firebase Realtime Database. 
If I have two instances of the same view model or if two view models call for same data from firebase, how can I cache them such that I don't end up adding multiple listeners for the same data? 
P.S. - @Doug: Part 2 to Part 3 link is broken for the series.   

A:

There is no performance hit for adding multiple listeners/observers on the same data.   The Firebase SDK will optimize such that only one copy of the data is transferred across the wire no matter how many listeners are waiting for it.   Once retrieved, the data is then simply sent to each listener/observer.   Likewise, if you have persistence enabled, there is only one local cache on disk that all listeners will use. 
You shouldn't have try to optimize your code in any way other than to minimize the amount of data a listener obtains.   Any overlap in data is managed automatically.