17
17
18
18
import { CredentialsProvider } from '../api/credentials' ;
19
19
import { User } from '../auth/user' ;
20
- import { IndexFreeQueryEngine } from '../local/index_free_query_engine' ;
21
20
import { LocalStore } from '../local/local_store' ;
22
21
import { MemoryPersistenceProvider } from '../local/memory_persistence' ;
23
22
import {
@@ -172,14 +171,15 @@ export class FirestoreClient {
172
171
this . credentials . setChangeListener ( user => {
173
172
if ( ! initialized ) {
174
173
initialized = true ;
175
-
174
+
175
+ logDebug ( LOG_TAG , 'Initializing. user=' , user . uid ) ;
176
176
this . initializePersistence (
177
177
persistenceProvider ,
178
178
persistenceSettings ,
179
179
user ,
180
180
persistenceResult
181
181
)
182
- . then ( ( ) => this . initializeRest ( persistenceProvider , user ) )
182
+ . then ( ( ) => this . initializeRest ( persistenceProvider ) )
183
183
. then ( initializationDone . resolve , initializationDone . reject ) ;
184
184
} else {
185
185
this . asyncQueue . enqueueAndForget ( ( ) => {
@@ -236,15 +236,16 @@ export class FirestoreClient {
236
236
try {
237
237
await persistenceProvider . initialize (
238
238
this . asyncQueue ,
239
+ this . remoteStore ,
239
240
this . databaseInfo ,
240
241
this . platform ,
241
242
this . clientId ,
242
243
user ,
244
+ MAX_CONCURRENT_LIMBO_RESOLUTIONS ,
243
245
persistenceSettings
244
246
) ;
245
247
246
248
this . persistence = persistenceProvider . getPersistence ( ) ;
247
- this . gcScheduler = persistenceProvider . getGarbageCollectionScheduler ( ) ;
248
249
this . sharedClientState = persistenceProvider . getSharedClientState ( ) ;
249
250
persistenceResult . resolve ( ) ;
250
251
} catch ( error ) {
@@ -325,20 +326,12 @@ export class FirestoreClient {
325
326
* implementation is available in this.persistence.
326
327
*/
327
328
private initializeRest (
328
- persistenceProvider : PersistenceProvider ,
329
- user : User
329
+ persistenceProvider : PersistenceProvider
330
330
) : Promise < void > {
331
- logDebug ( LOG_TAG , 'Initializing. user=' , user . uid ) ;
332
331
return this . platform
333
332
. loadConnection ( this . databaseInfo )
334
333
. then ( async connection => {
335
- const queryEngine = new IndexFreeQueryEngine ( ) ;
336
- this . localStore = persistenceProvider . newLocalStore (
337
- this . persistence ,
338
- queryEngine ,
339
- user
340
- ) ;
341
- await this . localStore . start ( ) ;
334
+ this . localStore = persistenceProvider . getLocalStore ( ) ;
342
335
const connectivityMonitor = this . platform . newConnectivityMonitor ( ) ;
343
336
const serializer = this . platform . newSerializer (
344
337
this . databaseInfo . databaseId
@@ -357,13 +350,6 @@ export class FirestoreClient {
357
350
onlineState ,
358
351
OnlineStateSource . RemoteStore
359
352
) ;
360
- const sharedClientStateOnlineStateChangedHandler = (
361
- onlineState : OnlineState
362
- ) : void =>
363
- this . syncEngine . applyOnlineStateChange (
364
- onlineState ,
365
- OnlineStateSource . SharedClientState
366
- ) ;
367
353
368
354
this . remoteStore = new RemoteStore (
369
355
this . localStore ,
@@ -373,19 +359,7 @@ export class FirestoreClient {
373
359
connectivityMonitor
374
360
) ;
375
361
376
- this . syncEngine = await persistenceProvider . newSyncEngine (
377
- this . localStore ,
378
- this . remoteStore ,
379
- this . sharedClientState ,
380
- user ,
381
- MAX_CONCURRENT_LIMBO_RESOLUTIONS
382
- ) ;
383
-
384
- this . sharedClientState . onlineStateHandler = sharedClientStateOnlineStateChangedHandler ;
385
-
386
- // Set up wiring between sync engine and other components
387
- this . remoteStore . syncEngine = this . syncEngine ;
388
- //this.sharedClientState.syncEngine = this.syncEngine;
362
+ this . syncEngine = await persistenceProvider . getSyncEngine ( ) ;
389
363
390
364
this . eventMgr = new EventManager ( this . syncEngine ) ;
391
365
0 commit comments