Skip to content

Commit 474025c

Browse files
authored
Revert "Tomandersen/multi db (#6518)" (#6552)
This reverts commit 0361bf3.
1 parent dac1e4c commit 474025c

File tree

17 files changed

+115
-553
lines changed

17 files changed

+115
-553
lines changed

.changeset/heavy-spiders-fry.md

-6
This file was deleted.

common/api-review/firestore-lite.api.md

+2-11
Original file line numberDiff line numberDiff line change
@@ -176,22 +176,13 @@ export function getDoc<T>(reference: DocumentReference<T>): Promise<DocumentSnap
176176
export function getDocs<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
177177

178178
// @public
179-
export function getFirestore(): Firestore;
180-
181-
// @public
182-
export function getFirestore(app: FirebaseApp): Firestore;
183-
184-
// @public
185-
export function getFirestore(databaseId: string): Firestore;
186-
187-
// @public
188-
export function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
179+
export function getFirestore(app?: FirebaseApp): Firestore;
189180

190181
// @public
191182
export function increment(n: number): FieldValue;
192183

193184
// @public
194-
export function initializeFirestore(app: FirebaseApp, settings: Settings, databaseId?: string): Firestore;
185+
export function initializeFirestore(app: FirebaseApp, settings: Settings): Firestore;
195186

196187
// @public
197188
export function limit(limit: number): QueryConstraint;

common/api-review/firestore.api.md

+2-11
Original file line numberDiff line numberDiff line change
@@ -228,22 +228,13 @@ export function getDocsFromCache<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
228228
export function getDocsFromServer<T>(query: Query<T>): Promise<QuerySnapshot<T>>;
229229

230230
// @public
231-
export function getFirestore(): Firestore;
232-
233-
// @public
234-
export function getFirestore(app: FirebaseApp): Firestore;
235-
236-
// @public
237-
export function getFirestore(databaseId: string): Firestore;
238-
239-
// @public
240-
export function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
231+
export function getFirestore(app?: FirebaseApp): Firestore;
241232

242233
// @public
243234
export function increment(n: number): FieldValue;
244235

245236
// @public
246-
export function initializeFirestore(app: FirebaseApp, settings: FirestoreSettings, databaseId?: string): Firestore;
237+
export function initializeFirestore(app: FirebaseApp, settings: FirestoreSettings): Firestore;
247238

248239
// @public
249240
export function limit(limit: number): QueryConstraint;

integration/firestore/firebase_export.ts

+11-17
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,19 @@ import {
2727

2828
let appCount = 0;
2929

30-
export function newTestApp(projectId: string, appName?: string): FirebaseApp {
31-
if (appName === undefined) {
32-
appName = 'test-app-' + appCount++;
33-
}
34-
return initializeApp(
35-
{
36-
apiKey: 'fake-api-key',
37-
projectId
38-
},
39-
appName
40-
);
41-
}
42-
4330
export function newTestFirestore(
44-
app: FirebaseApp,
45-
settings?: FirestoreSettings,
46-
dbName?: string
31+
projectId: string,
32+
nameOrApp?: string | FirebaseApp,
33+
settings?: FirestoreSettings
4734
): Firestore {
48-
return initializeFirestore(app, settings || {}, dbName);
35+
if (nameOrApp === undefined) {
36+
nameOrApp = 'test-app-' + appCount++;
37+
}
38+
const app =
39+
typeof nameOrApp === 'string'
40+
? initializeApp({ apiKey: 'fake-api-key', projectId }, nameOrApp)
41+
: nameOrApp;
42+
return initializeFirestore(app, settings || {});
4943
}
5044

5145
export * from '@firebase/firestore';

packages/firestore-compat/src/index.console.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,9 @@ export class Firestore extends FirestoreCompat {
9191
super(
9292
databaseIdFromFirestoreDatabase(firestoreDatabase),
9393
new FirestoreExp(
94+
databaseIdFromFirestoreDatabase(firestoreDatabase),
9495
new _EmptyAuthCredentialsProvider(),
95-
new _EmptyAppCheckTokenProvider(),
96-
databaseIdFromFirestoreDatabase(firestoreDatabase)
96+
new _EmptyAppCheckTokenProvider()
9797
),
9898
new MemoryPersistenceProvider()
9999
);

packages/firestore/lite/register.ts

+5-6
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ import {
2727
LiteAppCheckTokenProvider,
2828
LiteAuthCredentialsProvider
2929
} from '../src/api/credentials';
30-
import { databaseIdFromApp } from '../src/core/database_info';
3130
import { setSDKVersion } from '../src/core/version';
3231
import { Firestore } from '../src/lite-api/database';
32+
import { FirestoreSettings } from '../src/lite-api/settings';
3333

3434
declare module '@firebase/component' {
3535
interface NameServiceMapping {
@@ -42,25 +42,24 @@ export function registerFirestore(): void {
4242
_registerComponent(
4343
new Component(
4444
'firestore/lite',
45-
(container, { instanceIdentifier: databaseId, options: settings }) => {
45+
(container, { options: settings }: { options?: FirestoreSettings }) => {
4646
const app = container.getProvider('app').getImmediate()!;
4747
const firestoreInstance = new Firestore(
48+
app,
4849
new LiteAuthCredentialsProvider(
4950
container.getProvider('auth-internal')
5051
),
5152
new LiteAppCheckTokenProvider(
5253
container.getProvider('app-check-internal')
53-
),
54-
databaseIdFromApp(app, databaseId),
55-
app
54+
)
5655
);
5756
if (settings) {
5857
firestoreInstance._setSettings(settings);
5958
}
6059
return firestoreInstance;
6160
},
6261
'PUBLIC' as ComponentType.PUBLIC
63-
).setMultipleInstances(true)
62+
)
6463
);
6564
// RUNTIME_ENV and BUILD_TARGET are replaced by real values during the compilation
6665
registerVersion('firestore-lite', version, '__RUNTIME_ENV__');

packages/firestore/src/api/database.ts

+15-72
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import {
3131
OfflineComponentProvider,
3232
OnlineComponentProvider
3333
} from '../core/component_provider';
34-
import { DatabaseId, DEFAULT_DATABASE_NAME } from '../core/database_info';
34+
import { DatabaseId } from '../core/database_info';
3535
import {
3636
FirestoreClient,
3737
firestoreClientDisableNetwork,
@@ -103,18 +103,17 @@ export class Firestore extends LiteFirestore {
103103

104104
/** @hideconstructor */
105105
constructor(
106+
databaseIdOrApp: DatabaseId | FirebaseApp,
106107
authCredentialsProvider: CredentialsProvider<User>,
107-
appCheckCredentialsProvider: CredentialsProvider<string>,
108-
databaseId: DatabaseId,
109-
app?: FirebaseApp
108+
appCheckCredentialsProvider: CredentialsProvider<string>
110109
) {
111110
super(
111+
databaseIdOrApp,
112112
authCredentialsProvider,
113-
appCheckCredentialsProvider,
114-
databaseId,
115-
app
113+
appCheckCredentialsProvider
116114
);
117-
this._persistenceKey = app?.name || '[DEFAULT]';
115+
this._persistenceKey =
116+
'name' in databaseIdOrApp ? databaseIdOrApp.name : '[DEFAULT]';
118117
}
119118

120119
_terminate(): Promise<void> {
@@ -136,26 +135,17 @@ export class Firestore extends LiteFirestore {
136135
* @param app - The {@link @firebase/app#FirebaseApp} with which the {@link Firestore} instance will
137136
* be associated.
138137
* @param settings - A settings object to configure the {@link Firestore} instance.
139-
* @param databaseId - The name of database.
140138
* @returns A newly initialized {@link Firestore} instance.
141139
*/
142140
export function initializeFirestore(
143141
app: FirebaseApp,
144-
settings: FirestoreSettings,
145-
databaseId?: string
142+
settings: FirestoreSettings
146143
): Firestore {
147-
if (!databaseId) {
148-
databaseId = DEFAULT_DATABASE_NAME;
149-
}
150144
const provider = _getProvider(app, 'firestore');
151145

152-
if (provider.isInitialized(databaseId)) {
153-
const existingInstance = provider.getImmediate({
154-
identifier: databaseId
155-
});
156-
const initialSettings = provider.getOptions(
157-
databaseId
158-
) as FirestoreSettings;
146+
if (provider.isInitialized()) {
147+
const existingInstance = provider.getImmediate();
148+
const initialSettings = provider.getOptions() as FirestoreSettings;
159149
if (deepEqual(initialSettings, settings)) {
160150
return existingInstance;
161151
} else {
@@ -180,63 +170,20 @@ export function initializeFirestore(
180170
);
181171
}
182172

183-
return provider.initialize({
184-
options: settings,
185-
instanceIdentifier: databaseId
186-
});
173+
return provider.initialize({ options: settings });
187174
}
188175

189-
/**
190-
* Returns the existing default {@link Firestore} instance that is associated with the
191-
* default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
192-
* instance with default settings.
193-
*
194-
* @returns The {@link Firestore} instance of the provided app.
195-
*/
196-
export function getFirestore(): Firestore;
197-
/**
198-
* Returns the existing default {@link Firestore} instance that is associated with the
199-
* provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
200-
* instance with default settings.
201-
*
202-
* @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
203-
* instance is associated with.
204-
* @returns The {@link Firestore} instance of the provided app.
205-
*/
206-
export function getFirestore(app: FirebaseApp): Firestore;
207-
/**
208-
* Returns the existing {@link Firestore} instance that is associated with the
209-
* default {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
210-
* instance with default settings.
211-
*
212-
* @param databaseId - The name of database.
213-
* @returns The {@link Firestore} instance of the provided app.
214-
*/
215-
export function getFirestore(databaseId: string): Firestore;
216176
/**
217177
* Returns the existing {@link Firestore} instance that is associated with the
218178
* provided {@link @firebase/app#FirebaseApp}. If no instance exists, initializes a new
219179
* instance with default settings.
220180
*
221181
* @param app - The {@link @firebase/app#FirebaseApp} instance that the returned {@link Firestore}
222182
* instance is associated with.
223-
* @param databaseId - The name of database.
224183
* @returns The {@link Firestore} instance of the provided app.
225184
*/
226-
export function getFirestore(app: FirebaseApp, databaseId: string): Firestore;
227-
export function getFirestore(
228-
appOrDatabaseId?: FirebaseApp | string,
229-
optionalDatabaseId?: string
230-
): Firestore {
231-
const app: FirebaseApp =
232-
typeof appOrDatabaseId === 'object' ? appOrDatabaseId : getApp();
233-
const databaseId =
234-
typeof appOrDatabaseId === 'string'
235-
? appOrDatabaseId
236-
: optionalDatabaseId || DEFAULT_DATABASE_NAME;
237-
return _getProvider(app, 'firestore').getImmediate({
238-
identifier: databaseId
239-
}) as Firestore;
185+
export function getFirestore(app: FirebaseApp = getApp()): Firestore {
186+
return _getProvider(app, 'firestore').getImmediate() as Firestore;
240187
}
241188

242189
/**
@@ -551,11 +498,7 @@ export function disableNetwork(firestore: Firestore): Promise<void> {
551498
* terminated.
552499
*/
553500
export function terminate(firestore: Firestore): Promise<void> {
554-
_removeServiceInstance(
555-
firestore.app,
556-
'firestore',
557-
firestore._databaseId.database
558-
);
501+
_removeServiceInstance(firestore.app, 'firestore');
559502
return firestore._delete();
560503
}
561504

packages/firestore/src/core/database_info.ts

+1-19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
import { FirebaseApp } from '@firebase/app';
2-
3-
import { Code, FirestoreError } from '../util/error';
4-
51
/**
62
* @license
73
* Copyright 2017 Google LLC
@@ -50,7 +46,7 @@ export class DatabaseInfo {
5046
}
5147

5248
/** The default database name for a project. */
53-
export const DEFAULT_DATABASE_NAME = '(default)';
49+
const DEFAULT_DATABASE_NAME = '(default)';
5450

5551
/**
5652
* Represents the database ID a Firestore client is associated with.
@@ -78,17 +74,3 @@ export class DatabaseId {
7874
);
7975
}
8076
}
81-
82-
export function databaseIdFromApp(
83-
app: FirebaseApp,
84-
database?: string
85-
): DatabaseId {
86-
if (!Object.prototype.hasOwnProperty.apply(app.options, ['projectId'])) {
87-
throw new FirestoreError(
88-
Code.INVALID_ARGUMENT,
89-
'"projectId" not provided in firebase.initializeApp.'
90-
);
91-
}
92-
93-
return new DatabaseId(app.options.projectId!, database);
94-
}

0 commit comments

Comments
 (0)