Skip to content

Commit d02373f

Browse files
committed
refactor!: usePublicStorageUrl to useFirebaseStorageURL
Works with AppCheck
1 parent 9634922 commit d02373f

File tree

4 files changed

+46
-51
lines changed

4 files changed

+46
-51
lines changed

src/module.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ export default defineNuxtModule<ModuleOptions>({
9595

9696
// Composables
9797
addImportsDir(resolver.resolve('./runtime/composables'))
98+
addImportsDir(resolver.resolve('./runtime/composables/firebase'))
9899

99100
// Utils
100101
addImportsDir(resolver.resolve('./runtime/utils'))

src/runtime/composables/firebase.ts

Lines changed: 0 additions & 51 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { signOut as firebaseSignOut } from 'firebase/auth'
2+
import { useFirebaseAuth } from 'vuefire'
3+
import { navigateTo } from '#imports'
4+
5+
export const useSignOut = () => {
6+
// App state
7+
const auth = useFirebaseAuth()
8+
9+
const signOut = async (redirectTo = '/signin') => {
10+
// Sign out from Firebase Auth
11+
if (auth) await firebaseSignOut(auth)
12+
13+
// Redirect
14+
await navigateTo(redirectTo)
15+
}
16+
17+
return {
18+
signOut,
19+
}
20+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { getDownloadURL, ref as storageRef } from 'firebase/storage'
2+
import { useFirebaseStorage } from 'vuefire'
3+
4+
/**
5+
* Get the http version of a Firebase Storage URL.
6+
*
7+
* @param gsUrl Should be formatted as gs://...
8+
* @param version
9+
* @returns Downloadable URL (https://)
10+
*/
11+
export const useFirebaseStorageURL = async (gsUrl: string, version?: string): Promise<string> => {
12+
// Firebase
13+
const storage = useFirebaseStorage()
14+
15+
// Get URL
16+
const fileRef = storageRef(storage, gsUrl)
17+
const storageUrl = await getDownloadURL(fileRef)
18+
let fileUrl = storageUrl
19+
20+
if (version) {
21+
fileUrl += `&v=${version}`
22+
}
23+
24+
return fileUrl
25+
}

0 commit comments

Comments
 (0)