Estoy escribiendo un middleware básico para NuxtJS 3 para la autenticación usando Firebase y solo necesito ayuda con la sintaxis adecuada de encadenamiento y anidamiento. Aquí está mi código:
import { onAuthStateChanged } from 'firebase/auth'; import { getDoc, doc } from 'firebase/firestore'; import { auth, db } from '~/plugins/firebase'; export default async function ({ redirect }) { await onAuthStateChanged(auth, (user) => { if (user) { const documentRef = doc(db, 'users', user.uid); const getDocData = async () => { const docSnap = await getDoc(documentRef); if (docSnap.exists()) { console.log('Document data:', doc.data()); } }; } }); } La mayor parte funciona, pero la const getDocData... no se activa y, por supuesto, es porque ni siquiera lo estoy llamando, pero he intentado durante horas encontrar una solución limpia y nada parece estar funcionando hasta ahora.
Debe declarar la devolución de llamada async , de la siguiente manera:
onAuthStateChanged(auth, async (user) => { if (user) { const documentRef = doc(db, 'users', user.uid); const docSnap = await getDoc(documentRef); if (docSnap.exists()) { console.log('Document data:', docSnap.data()); } } }); También tenga en cuenta que debe cambiar doc.data() a docSnap.data() .