Skip to content

Commit 422badb

Browse files
authored
feat(firestore): add support for non-default databases #8489
1 parent c04f2a3 commit 422badb

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

packages/firestore/e2e/firestore.e2e.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,5 +1011,18 @@ describe('firestore()', function () {
10111011
events.forEach(event => event.should.equal('sync'));
10121012
});
10131013
});
1014+
1015+
describe('non-default db', function () {
1016+
it('should be able to initialize a non-default db on mobile platforms', async function () {
1017+
// Not supported on web lite sdk
1018+
if (!Platform.other) {
1019+
const { initializeFirestore } = firestoreModular;
1020+
const { getApp } = modular;
1021+
const app = getApp('secondaryFromNative');
1022+
const db = await initializeFirestore(app, { persistence: false }, 'test2ndDb');
1023+
db.customUrlOrRegion.should.equal('test2ndDb');
1024+
}
1025+
});
1026+
});
10141027
});
10151028
});

packages/firestore/lib/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,11 @@ class FirebaseFirestoreModule extends FirebaseModule {
103103
persistence: true,
104104
};
105105
}
106+
107+
get customUrlOrRegion() {
108+
return this._customUrlOrRegion;
109+
}
110+
106111
// We override the FirebaseModule's `eventNameForApp()` method to include the customUrlOrRegion
107112
eventNameForApp(...args) {
108113
return `${this.app.name}-${this._customUrlOrRegion}-${args.join('-')}`;

packages/firestore/lib/modular/index.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,10 +210,9 @@ export function waitForPendingWrites(firestore) {
210210
* @param {string?} databaseId
211211
* @returns {Promise<Firestore>}
212212
*/
213-
export async function initializeFirestore(app, settings /* databaseId */) {
214-
// TODO(exaby73): implement 2nd database once it's supported
213+
export async function initializeFirestore(app, settings, databaseId) {
215214
const firebase = getApp(app.name);
216-
const firestore = firebase.firestore();
215+
const firestore = firebase.firestore(databaseId);
217216
await firestore.settings.call(firestore, settings, MODULAR_DEPRECATION_ARG);
218217
return firestore;
219218
}

0 commit comments

Comments
 (0)