Skip to content

Add ComponentProvider #2828

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Apr 7, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/firestore/index.memory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import firebase from '@firebase/app';
import { FirebaseNamespace } from '@firebase/app-types';

import { Firestore } from './src/api/database';
import { MemoryPersistenceProvider } from './src/local/memory_persistence';
import { MemoryComponentProvider } from './src/core/component_provider';
import { configureForFirebase } from './src/platform/config';

import './register-module';
Expand All @@ -33,7 +33,7 @@ import { name, version } from './package.json';
export function registerFirestore(instance: FirebaseNamespace): void {
configureForFirebase(
instance,
(app, auth) => new Firestore(app, auth, new MemoryPersistenceProvider())
(app, auth) => new Firestore(app, auth, new MemoryComponentProvider())
);
instance.registerVersion(name, version);
}
Expand Down
4 changes: 2 additions & 2 deletions packages/firestore/index.node.memory.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import firebase from '@firebase/app';
import { FirebaseNamespace } from '@firebase/app-types';

import { Firestore } from './src/api/database';
import { MemoryPersistenceProvider } from './src/local/memory_persistence';
import { MemoryComponentProvider } from './src/core/component_provider';
import { configureForFirebase } from './src/platform/config';
import './register-module';
import './src/platform_node/node_init';
Expand All @@ -33,7 +33,7 @@ import { name, version } from './package.json';
export function registerFirestore(instance: FirebaseNamespace): void {
configureForFirebase(
instance,
(app, auth) => new Firestore(app, auth, new MemoryPersistenceProvider())
(app, auth) => new Firestore(app, auth, new MemoryComponentProvider())
);
instance.registerVersion(name, version);
}
Expand Down
6 changes: 3 additions & 3 deletions packages/firestore/index.node.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* @license
* Copyright 2017 Google Inc.
* Copyright 2017 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -18,7 +18,7 @@ import firebase from '@firebase/app';
import { FirebaseNamespace } from '@firebase/app-types';

import { Firestore } from './src/api/database';
import { IndexedDbPersistenceProvider } from './src/local/indexeddb_persistence';
import { IndexedDbComponentProvider } from './src/core/component_provider';
import { configureForFirebase } from './src/platform/config';

import './register-module';
Expand All @@ -33,7 +33,7 @@ import { name, version } from './package.json';
export function registerFirestore(instance: FirebaseNamespace): void {
configureForFirebase(
instance,
(app, auth) => new Firestore(app, auth, new IndexedDbPersistenceProvider())
(app, auth) => new Firestore(app, auth, new IndexedDbComponentProvider())
);
instance.registerVersion(name, version, 'node');
}
Expand Down
6 changes: 3 additions & 3 deletions packages/firestore/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* @license
* Copyright 2017 Google Inc.
* Copyright 2017 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -19,7 +19,7 @@ import firebase from '@firebase/app';
import { FirebaseNamespace } from '@firebase/app-types';

import { Firestore } from './src/api/database';
import { IndexedDbPersistenceProvider } from './src/local/indexeddb_persistence';
import { IndexedDbComponentProvider } from './src/core/component_provider';
import { configureForFirebase } from './src/platform/config';
import { name, version } from './package.json';

Expand All @@ -33,7 +33,7 @@ import './src/platform_browser/browser_init';
export function registerFirestore(instance: FirebaseNamespace): void {
configureForFirebase(
instance,
(app, auth) => new Firestore(app, auth, new IndexedDbPersistenceProvider())
(app, auth) => new Firestore(app, auth, new IndexedDbComponentProvider())
);
instance.registerVersion(name, version);
}
Expand Down
29 changes: 14 additions & 15 deletions packages/firestore/src/api/database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ import { FirebaseApp } from '@firebase/app-types';
import { _FirebaseApp, FirebaseService } from '@firebase/app-types/private';
import { DatabaseId, DatabaseInfo } from '../core/database_info';
import { ListenOptions } from '../core/event_manager';
import {
ComponentProvider,
MemoryComponentProvider
} from '../core/component_provider';
import { FirestoreClient, PersistenceSettings } from '../core/firestore_client';
import {
Bound,
Expand All @@ -36,8 +40,6 @@ import {
import { Transaction as InternalTransaction } from '../core/transaction';
import { ChangeType, ViewSnapshot } from '../core/view_snapshot';
import { LruParams } from '../local/lru_garbage_collector';
import { MemoryPersistenceProvider } from '../local/memory_persistence';
import { PersistenceProvider } from '../local/persistence';
import { Document, MaybeDocument, NoDocument } from '../model/document';
import { DocumentKey } from '../model/document_key';
import { DeleteMutation, Mutation, Precondition } from '../model/mutation';
Expand Down Expand Up @@ -279,7 +281,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
// underscore to discourage their use.
readonly _databaseId: DatabaseId;
private readonly _persistenceKey: string;
private readonly _persistenceProvider: PersistenceProvider;
private readonly _componentProvider: ComponentProvider;
private _credentials: CredentialsProvider;
private readonly _firebaseApp: FirebaseApp | null = null;
private _settings: FirestoreSettings;
Expand All @@ -298,13 +300,13 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {

readonly _dataReader: UserDataReader;

// Note: We are using `MemoryPersistenceProvider` as a default
// PersistenceProvider to ensure backwards compatibility with the format
// Note: We are using `MemoryComponentProvider` as a default
// ComponentProvider to ensure backwards compatibility with the format
// expected by the console build.
constructor(
databaseIdOrApp: FirestoreDatabase | FirebaseApp,
authProvider: Provider<FirebaseAuthInternalName>,
persistenceProvider: PersistenceProvider = new MemoryPersistenceProvider()
persistenceProvider: ComponentProvider = new MemoryComponentProvider()
) {
if (typeof (databaseIdOrApp as FirebaseApp).options === 'object') {
// This is very likely a Firebase app object
Expand All @@ -329,7 +331,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
this._credentials = new EmptyCredentialsProvider();
}

this._persistenceProvider = persistenceProvider;
this._componentProvider = persistenceProvider;
this._settings = new FirestoreSettings({});
this._dataReader = this.createDataReader(this._databaseId);
}
Expand Down Expand Up @@ -399,7 +401,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
DEFAULT_SYNCHRONIZE_TABS;
}

return this.configureClient(this._persistenceProvider, {
return this.configureClient(this._componentProvider, {
durable: true,
cacheSizeBytes: this._settings.cacheSizeBytes,
synchronizeTabs
Expand All @@ -421,7 +423,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
this._queue.enqueueAndForgetEvenAfterShutdown(async () => {
try {
const databaseInfo = this.makeDatabaseInfo();
await this._persistenceProvider.clearPersistence(databaseInfo);
await this._componentProvider.clearPersistence(databaseInfo);
deferred.resolve();
} catch (e) {
deferred.reject(e);
Expand Down Expand Up @@ -486,7 +488,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
if (!this._firestoreClient) {
// Kick off starting the client but don't actually wait for it.
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.configureClient(new MemoryPersistenceProvider(), {
this.configureClient(new MemoryComponentProvider(), {
durable: false
});
}
Expand All @@ -504,7 +506,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
}

private configureClient(
persistenceProvider: PersistenceProvider,
componentProvider: ComponentProvider,
persistenceSettings: PersistenceSettings
): Promise<void> {
assert(!!this._settings.host, 'FirestoreSettings.host is not set');
Expand All @@ -520,10 +522,7 @@ export class Firestore implements firestore.FirebaseFirestore, FirebaseService {
this._queue
);

return this._firestoreClient.start(
persistenceProvider,
persistenceSettings
);
return this._firestoreClient.start(componentProvider, persistenceSettings);
}

private createDataReader(databaseId: DatabaseId): UserDataReader {
Expand Down
Loading