public FirebaseOfflineCacheRepo( FirebaseClient client, string path, string key = "", StreamingOptions streaming = StreamingOptions.None, InitialPullStrategy initialPull = InitialPullStrategy.Everything) { // The offline database filename is named after type T. // So, if you have more than one list of type T objects, you need to differentiate it // by adding a filename modifier; which is what we're using the "key" parameter for. _baseQuery = client.Child(path); _realtimeDb = _baseQuery .AsRealtimeDatabase <T>(key, string.Empty, streaming, initialPull, true); SyncExceptionThrown = Observable .FromEventPattern <ExceptionEventArgs>( h => _realtimeDb.SyncExceptionThrown += h, h => _realtimeDb.SyncExceptionThrown -= h); }