Skip to content

Commit 9d424f5

Browse files
Compat Layer for Firestore (#4003)
1 parent 39847b8 commit 9d424f5

26 files changed

+488
-670
lines changed

.github/workflows/test-changed-firestore-integration.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ jobs:
2828
cp config/ci.config.json config/project.json
2929
yarn
3030
- name: build
31-
run: yarn build:changed firestore-integration --buildAppExp
31+
run: yarn build:changed firestore-integration --buildAppExp --buildAppCompat
3232
- name: Run tests if firestore or its dependencies has changed
3333
run: yarn test:changed firestore-integration

.github/workflows/test-changed-firestore.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ jobs:
2828
cp config/ci.config.json config/project.json
2929
yarn
3030
- name: build
31-
run: yarn build:changed firestore --buildAppExp
31+
run: yarn build:changed firestore --buildAppExp --buildAppCompat
3232
- name: Run tests if firestore or its dependencies has changed
3333
run: yarn test:changed firestore

packages/firestore/exp/src/api/database.ts

+13-12
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ import {
3939
FirebaseFirestore as LiteFirestore,
4040
Settings as LiteSettings
4141
} from '../../../lite/src/api/database';
42+
import { DatabaseId } from '../../../src/core/database_info';
4243
import { Code, FirestoreError } from '../../../src/util/error';
4344
import { Deferred } from '../../../src/util/promise';
4445
import { LRU_MINIMUM_CACHE_SIZE_BYTES } from '../../../src/local/lru_garbage_collector';
4546
import {
4647
CACHE_SIZE_UNLIMITED,
4748
configureFirestore,
48-
ensureFirestoreConfigured,
49-
FirestoreCompat
49+
ensureFirestoreConfigured
5050
} from '../../../src/api/database';
5151
import {
5252
indexedDbClearPersistence,
@@ -70,18 +70,19 @@ export interface Settings extends LiteSettings {
7070
*/
7171
export class FirebaseFirestore
7272
extends LiteFirestore
73-
implements _FirebaseService, FirestoreCompat {
73+
implements _FirebaseService {
7474
readonly _queue = new AsyncQueue();
7575
readonly _persistenceKey: string;
7676

7777
_firestoreClient: FirestoreClient | undefined;
7878

7979
constructor(
80-
app: FirebaseApp,
80+
databaseIdOrApp: DatabaseId | FirebaseApp,
8181
authProvider: Provider<FirebaseAuthInternalName>
8282
) {
83-
super(app, authProvider);
84-
this._persistenceKey = app.name;
83+
super(databaseIdOrApp, authProvider);
84+
this._persistenceKey =
85+
'name' in databaseIdOrApp ? databaseIdOrApp.name : '[DEFAULT]';
8586
}
8687

8788
_terminate(): Promise<void> {
@@ -165,13 +166,13 @@ export function getFirestore(app: FirebaseApp): FirebaseFirestore {
165166
* @return A promise that represents successfully enabling persistent storage.
166167
*/
167168
export function enableIndexedDbPersistence(
168-
firestore: FirestoreCompat,
169+
firestore: FirebaseFirestore,
169170
persistenceSettings?: PersistenceSettings
170171
): Promise<void> {
171172
verifyNotInitialized(firestore);
172173

173174
const client = ensureFirestoreConfigured(firestore);
174-
const settings = firestore._getSettings();
175+
const settings = firestore._freezeSettings();
175176

176177
const onlineComponentProvider = new OnlineComponentProvider();
177178
const offlineComponentProvider = new IndexedDbOfflineComponentProvider(
@@ -209,12 +210,12 @@ export function enableIndexedDbPersistence(
209210
* storage.
210211
*/
211212
export function enableMultiTabIndexedDbPersistence(
212-
firestore: FirestoreCompat
213+
firestore: FirebaseFirestore
213214
): Promise<void> {
214215
verifyNotInitialized(firestore);
215216

216217
const client = ensureFirestoreConfigured(firestore);
217-
const settings = firestore._getSettings();
218+
const settings = firestore._freezeSettings();
218219

219220
const onlineComponentProvider = new OnlineComponentProvider();
220221
const offlineComponentProvider = new MultiTabOfflineComponentProvider(
@@ -322,7 +323,7 @@ function canFallbackFromIndexedDbError(
322323
* cleared. Otherwise, the promise is rejected with an error.
323324
*/
324325
export function clearIndexedDbPersistence(
325-
firestore: FirestoreCompat
326+
firestore: FirebaseFirestore
326327
): Promise<void> {
327328
if (firestore._initialized && !firestore._terminated) {
328329
throw new FirestoreError(
@@ -420,7 +421,7 @@ export function terminate(firestore: FirebaseFirestore): Promise<void> {
420421
return firestore._delete();
421422
}
422423

423-
function verifyNotInitialized(firestore: FirestoreCompat): void {
424+
function verifyNotInitialized(firestore: FirebaseFirestore): void {
424425
if (firestore._initialized || firestore._terminated) {
425426
throw new FirestoreError(
426427
Code.FAILED_PRECONDITION,

0 commit comments

Comments
 (0)