diff --git a/.gitignore b/.gitignore index 83592a68..7882b7d7 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ roadmap.md *-debug.log docs/api .firebase +.idea diff --git a/src/firestore/index.ts b/src/firestore/index.ts index 33f03d1d..08aec022 100644 --- a/src/firestore/index.ts +++ b/src/firestore/index.ts @@ -3,6 +3,7 @@ import { DocumentReference, Query, getFirestore, + type Firestore, } from 'firebase/firestore' import { ref, MaybeRefOrGetter } from 'vue-demi' import { useFirebaseApp } from '../app' @@ -107,8 +108,27 @@ export function useDocument( * Retrieves the Firestore instance. * * @param name - name of the application + * @param database - name of the database * @returns the Firestore instance */ -export function useFirestore(name?: string) { - return getFirestore(useFirebaseApp(name)) +export function useFirestore(database: string): Firestore +export function useFirestore(options: { + name?: string + database?: string +}): Firestore +export function useFirestore( + optionsOrDatabase: string | { name?: string; database?: string } +): Firestore { + if (typeof optionsOrDatabase === 'string') { + return getFirestore(useFirebaseApp(), optionsOrDatabase) + } + + if (optionsOrDatabase.database) { + return getFirestore( + useFirebaseApp(optionsOrDatabase.name), + optionsOrDatabase.database + ) + } + + return getFirestore(useFirebaseApp(optionsOrDatabase.name)) }