Skip to content

Commit c787bf5

Browse files
committed
chore: missing file
1 parent 86d7be8 commit c787bf5

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

playground/src/firestore.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import { initializeApp, type FirebaseApp } from 'firebase/app'
2+
import { Firestore, getFirestore } from 'firebase/firestore'
3+
import { inject, type App, type InjectionKey } from 'vue'
4+
5+
export function createFirebaseApp() {
6+
const firebaseApp = initializeApp({
7+
apiKey: 'AIzaSyAkUKe36TPWL2eZTshgk-Xl4bY_R5SB97U',
8+
authDomain: 'vue-fire-store.firebaseapp.com',
9+
databaseURL: 'https://vue-fire-store.firebaseio.com',
10+
projectId: 'vue-fire-store',
11+
storageBucket: 'vue-fire-store.appspot.com',
12+
messagingSenderId: '998674887640',
13+
appId: '1:998674887640:web:1e2bb2cc3e5eb2fc3478ad',
14+
measurementId: 'G-RL4BTWXKJ7',
15+
})
16+
17+
const firestore = getFirestore(firebaseApp)
18+
19+
return { firebaseApp, firestore }
20+
}
21+
22+
export function VueFirePlugin({
23+
firebaseApp,
24+
firestore,
25+
}: {
26+
firebaseApp: FirebaseApp
27+
firestore: Firestore
28+
}) {
29+
return (app: App) => {
30+
app.provide(FirestoreInjectKey, firestore)
31+
app.provide(FirebaseAppInjectKey, firebaseApp)
32+
}
33+
}
34+
35+
export const FirestoreInjectKey: InjectionKey<Firestore> = Symbol('firestore')
36+
export const FirebaseAppInjectKey: InjectionKey<FirebaseApp> =
37+
Symbol('firebaseApp')
38+
39+
export function useFirestore() {
40+
// TODO: warning with no currentInstance
41+
return inject(FirestoreInjectKey)!
42+
}
43+
44+
export function useFirebaseApp() {
45+
return inject(FirebaseAppInjectKey)!
46+
}

0 commit comments

Comments
 (0)