@@ -78,8 +84,7 @@
## Status
-- VueFire is currently stable
-- Nuxt VueFire is in _Preview_
+- VueFire and Nuxt VueFire are both currently stable
## Roadmap
diff --git a/docs/.vitepress/components/HomeSponsors.vue b/docs/.vitepress/components/HomeSponsors.vue
deleted file mode 100644
index eb8a7b31..00000000
--- a/docs/.vitepress/components/HomeSponsors.vue
+++ /dev/null
@@ -1,108 +0,0 @@
-
-
-
-
-
-
-
diff --git a/docs/.vitepress/components/sponsors.json b/docs/.vitepress/components/sponsors.json
deleted file mode 100644
index d4ef1030..00000000
--- a/docs/.vitepress/components/sponsors.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "platinum": [],
- "gold": [],
- "silver": [
- {
- "alt": "VueMastery",
- "href": "https://www.vuemastery.com/",
- "imgSrcDark": "https://posva-sponsors.pages.dev/logos/vuemastery-dark.png",
- "imgSrcLight": "https://posva-sponsors.pages.dev/logos/vuemastery-light.svg"
- },
- {
- "alt": "Prefect",
- "href": "https://www.prefect.io/",
- "imgSrcDark": "https://posva-sponsors.pages.dev/logos/prefectlogo-dark.svg",
- "imgSrcLight": "https://posva-sponsors.pages.dev/logos/prefectlogo-light.svg"
- }
- ],
- "bronze": [
- {
- "alt": "Stanislas Ormières",
- "href": "https://stormier.ninja",
- "imgSrcDark": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4",
- "imgSrcLight": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4"
- },
- {
- "alt": "Antony Konstantinidis",
- "href": "https://www.vuejs.de",
- "imgSrcDark": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4",
- "imgSrcLight": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4"
- },
- {
- "alt": "Storyblok",
- "href": "https://storyblok.com",
- "imgSrcDark": "https://posva-sponsors.pages.dev/logos/storyblok.png",
- "imgSrcLight": "https://posva-sponsors.pages.dev/logos/storyblok.png"
- },
- {
- "alt": "Nuxt UI Pro Templates",
- "href": "https://ui.nuxt.com/pro",
- "imgSrcDark": "https://avatars.githubusercontent.com/u/81570812?v=4",
- "imgSrcLight": "https://avatars.githubusercontent.com/u/81570812?v=4"
- }
- ]
-}
diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts
index dd11a29f..5a4345a9 100644
--- a/docs/.vitepress/config.ts
+++ b/docs/.vitepress/config.ts
@@ -280,7 +280,10 @@ function sidebarApi(): SidebarGroup {
text: 'API Reference',
items: [
{ text: 'Package List', link: '/api/' },
- { text: 'nuxt-vuefire', link: '/api/modules/nuxt_vuefire.html' },
+ {
+ text: 'nuxt-vuefire',
+ link: '/api/modules/packages_nuxt_src_module.html',
+ },
{ text: 'vuefire', link: '/api/modules/vuefire.html' },
],
}
diff --git a/docs/.vitepress/theme/components/sponsors.json b/docs/.vitepress/theme/components/sponsors.json
index d4ef1030..993019bb 100644
--- a/docs/.vitepress/theme/components/sponsors.json
+++ b/docs/.vitepress/theme/components/sponsors.json
@@ -3,8 +3,8 @@
"gold": [],
"silver": [
{
- "alt": "VueMastery",
- "href": "https://www.vuemastery.com/",
+ "alt": "Vue Mastery",
+ "href": "https://www.vuemastery.com",
"imgSrcDark": "https://posva-sponsors.pages.dev/logos/vuemastery-dark.png",
"imgSrcLight": "https://posva-sponsors.pages.dev/logos/vuemastery-light.svg"
},
@@ -13,21 +13,15 @@
"href": "https://www.prefect.io/",
"imgSrcDark": "https://posva-sponsors.pages.dev/logos/prefectlogo-dark.svg",
"imgSrcLight": "https://posva-sponsors.pages.dev/logos/prefectlogo-light.svg"
+ },
+ {
+ "alt": "Route Optimizer and Route Planner Software",
+ "href": "https://route4me.com",
+ "imgSrcDark": "https://posva-sponsors.pages.dev/logos/route4me.png",
+ "imgSrcLight": "https://posva-sponsors.pages.dev/logos/route4me.png"
}
],
"bronze": [
- {
- "alt": "Stanislas Ormières",
- "href": "https://stormier.ninja",
- "imgSrcDark": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4",
- "imgSrcLight": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4"
- },
- {
- "alt": "Antony Konstantinidis",
- "href": "https://www.vuejs.de",
- "imgSrcDark": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4",
- "imgSrcLight": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4"
- },
{
"alt": "Storyblok",
"href": "https://storyblok.com",
@@ -37,8 +31,20 @@
{
"alt": "Nuxt UI Pro Templates",
"href": "https://ui.nuxt.com/pro",
- "imgSrcDark": "https://avatars.githubusercontent.com/u/81570812?v=4",
- "imgSrcLight": "https://avatars.githubusercontent.com/u/81570812?v=4"
+ "imgSrcDark": "https://posva-sponsors.pages.dev/logos/nuxt-dark.svg",
+ "imgSrcLight": "https://posva-sponsors.pages.dev/logos/nuxt-light.svg"
+ },
+ {
+ "alt": "Antony Konstantinidis",
+ "href": "https://www.vuejs.de",
+ "imgSrcDark": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4",
+ "imgSrcLight": "https://avatars.githubusercontent.com/u/4183726?u=6b50a8ea16de29d2982f43c5640b1db9299ebcd1&v=4"
+ },
+ {
+ "alt": "Stanislas Ormières",
+ "href": "https://stormier.ninja",
+ "imgSrcDark": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4",
+ "imgSrcLight": "https://avatars.githubusercontent.com/u/2486424?u=7b0c73ae5d090ce53bf59473094e9606fe082c59&v=4"
}
]
}
diff --git a/docs/guide/getting-started.md b/docs/guide/getting-started.md
index 8a4a44f1..513e3ba6 100644
--- a/docs/guide/getting-started.md
+++ b/docs/guide/getting-started.md
@@ -38,7 +38,7 @@ Most of the time, you should gather collection references in one of your files a
```js
import { initializeApp } from 'firebase/app'
-import { getDatabase, dbRef } from 'firebase/database'
+import { getDatabase, ref as dbRef } from 'firebase/database'
// ... other firebase imports
export const firebaseApp = initializeApp({
diff --git a/docs/guide/realtime-data.md b/docs/guide/realtime-data.md
index 7ce81e08..f4066977 100644
--- a/docs/guide/realtime-data.md
+++ b/docs/guide/realtime-data.md
@@ -16,7 +16,7 @@ Use the `useCollection()`, `useDatabaseList()`, `useDocument()`, and `useDatabas
```vue
```
+
diff --git a/docs/guide/storage.md b/docs/guide/storage.md
index 7e641d30..bdfbb805 100644
--- a/docs/guide/storage.md
+++ b/docs/guide/storage.md
@@ -1,6 +1,6 @@
# Firebase Storage
-[Firebase Storage](https://firebase.google.com/docs/storage/web/start) is a cloud storage service for Firebase. It allows you to store and serve user-generated content like images, audio, video, and other files. While most of the APIs can be used as you would normally do with Firebase, VueFire exposes a few composables to integrate better with Vue that not only give you access to reactive variables but also to some actions like `upload()` to update a file while keeping the reactive variable up to date at the same time.
+[Firebase Storage](https://firebase.google.com/docs/storage/web/start) is a cloud storage service for Firebase. It allows you to store and serve user-generated content like images, audio, video, and other files. While most of the APIs can be used as you would normally do with Firebase, VueFire exposes a few composables to integrate better with Vue. These not only give you access to reactive variables, but also to some actions like `upload()` which updates a file while also keeping the reactive variable up to date.
## Installation
@@ -10,9 +10,9 @@ You can access the Firebase Storage from within any component with the composabl
## Uploading Files
-You can upload and monitor the progress of a file upload with the `useStorageFile()` composable. This also exposes the URL of the file once it's uploaded and its metadata, let's start with a full example of a form upload:
+To upload and monitor the upload progress of a file, use the `useStorageFile()` composable. This will expose the URL and metadata of the file once it's uploaded. Here's a full example of a form upload:
-```vue
+```vue{5,18}