Open mailaneel opened 4 months ago
Hey! You can configure it using the options schema
argument: https://typesaurus.com/api/schema/#app
@kossnocorp apologies for raising this again, I tried using the schema option like you have suggested, but it didn't work as expected.
Below is the logic used in typesaurus to get firestore, when we pass { app: 'some-name' }
assuming some-name
is the name of the firestore database. we are getting app instance with different name, but firestore is still using default database (getFirestore logic added below). Also I don't see a option to pass to initializeApp
export function firestore(options) {
const appName = options?.server?.app || options?.app;
const app = getApp(appName);
if (options?.server?.preferRest) {
return initializeFirestore(app, {
preferRest: options?.server?.preferRest,
});
} else {
return getFirestore(app);
}
}
getFirestore
from firebase.js
export function getFirestore(app: App, databaseId: string): Firestore;
export function getFirestore(
appOrDatabaseId?: App | string,
optionalDatabaseId?: string
): Firestore {
const app: App = typeof appOrDatabaseId === 'object' ? appOrDatabaseId : getApp();
const databaseId =
(typeof appOrDatabaseId === 'string' ? appOrDatabaseId : optionalDatabaseId) || DEFAULT_DATABASE_ID;
const firebaseApp: FirebaseApp = app as FirebaseApp;
const firestoreService = firebaseApp.getOrInitService(
'firestore', (app) => new FirestoreService(app));
return firestoreService.getDatabase(databaseId);
}
Hey, sorry that it doesn't work for you. Let me reopen the issue, add tests and fix it.
I had this need myself, just submitted a PR that fixes it @kossnocorp https://github.com/kossnocorp/typesaurus/pull/139
Reopening #126
databaseId is second param to getFirestore, without this it always uses (default) database https://github.com/kossnocorp/typesaurus/blob/7976747ddfa726350d751e7b31894d31f76f3646/src/adapter/admin/firebase.mjs#L15