¿Qué es VueFire? VueFire te permite conectar tu app Vue 3 con Firebase (Firestore, Auth, RTDB, Storage) de forma sencilla y reactiva usando composables como useAuth, useFirestore, etc. Ideal si quieres apps en tiempo real sin escribir cientos de líneas de lógica.
)
Se encarga de la sincronización automática de datos.
Simplifica el acceso a Firebase con composables como useFirestore, useAuth, useDatabase, etc.
Te ayuda a crear apps en tiempo real con muy poco esfuerzo.
Funciona perfecto con Vite, Pinia y toda la nueva ola del ecosistema Vue 3.
npm install vuefire firebaseEn tu main.ts o main.js:
import { createApp } from 'vue'
import App from './App.vue'
import { VueFire, VueFireAuth } from 'vuefire'
import { initializeApp } from 'firebase/app'
const firebaseApp = initializeApp({
apiKey: 'TU_API_KEY',
authDomain: 'TU_DOMINIO.firebaseapp.com',
projectId: 'TU_PROJECT_ID',
...otras opciones
})
const app = createApp(App)
app.use(VueFire, {
firebaseApp,
modules: [VueFireAuth()],
})
app.mount('#app')<script setup lang="ts">
import { useFirebaseAuth } from 'vuefire'
import { GoogleAuthProvider, signInWithPopup } from 'firebase/auth'
const googleAuthProvider = new GoogleAuthProvider()
const auth = useFirebaseAuth()
const loginWithGoogle = () => {
if (!auth) {
console.error('Firebase Auth instance is not available.')
return
}
error.value = null
signInWithPopup(auth, googleAuthProvider)
.then(() => {
console.log('User signed in successfully')
toast.success('Sesión iniciada con éxito')
router.push({ name: 'bindeo-app' })
})
.catch((error) => {
console.error('Error signing in:', { error })
toast.error('Error al iniciar sesión')
error.value = error.message
})
}
</script>
<template>
<button @click="loginWithGoogle">
Iniciar sesión con Google
</button>
</template>Ahora puedes acceder al usuario autenticado desde useCurrentUser
<script setup lang="ts">
import { useCurrentUser } from 'vuefire'
import HeaderApp from '@/components/HeaderApp.vue'
const user = useCurrentUser()
</script>
<template>
<div>
<HeaderApp
v-if="user"
:name="user.displayName || user.email"
:email="user.email"
:photoURL="user?.photoURL"
/>
<RouterView />
</div>
</template>Sincronización automática y reactiva
Autenticación sencilla y moderna
Ideal para apps Vue 3 con Vite + Composition API
Haz una pequeña prueba en tu app personal o un side project.
Empieza por conectar Firestore o Auth y verás lo fluido que es el desarrollo.