Estoy tratando de leer una colección con un nombre específico de firebase firestore, pero recibo un error que no pude encontrar la respuesta. Aquí puedes ver mi archivo de arranque:
import { initializeApp } from "firebase/app"; import { getFirestore } from "firebase/firestore"; import { getAuth, createUserWithEmailAndPassword } from "firebase/auth"; import { collection, query, where, doc, getDoc } from "firebase/firestore"; const firebaseApp = initializeApp({ apiKey: "####", authDomain: "####", projectId: "####", }); const db = getFirestore(); const auth = getAuth(); const createUser = createUserWithEmailAndPassword(); export default {db, auth, createUser};Aquí está mi etiqueta de script en el archivo .vue:
<script> import { collection, getDocs } from "firebase/firestore"; import db from "src/boot/firebase" export default { setup() { return { waitingList: {}, }; }, created() { const querySnapshot = await getDocs(collection(db, "waitingList")); querySnapshot.forEach((doc) => { // doc.data() is never undefined for query doc snapshots console.log(doc.name, " => ", doc.data()); }); }, }; </script>y aquí puedes ver la lista de errores que obtuve:
No capturado (en promesa) TypeError: no se pueden leer las propiedades de undefined (leyendo 'tenantId')
FirebaseError: se esperaba que el primer argumento de la colección () fuera una CollectionReference, una DocumentReference o FirebaseFirestore
La base de db sería un objeto que contiene instancias de Firestore y Auth. Intente cambiar su importación como se muestra a continuación:
import { db } from "src/boot/firebase" // instead of import db from "..." export default { setup() { return { waitingList: {}, }; }, async created() { const querySnapshot = await getDocs(collection(db, "waitingList")); querySnapshot.forEach((doc) => { console.log(doc.name, " => ", doc.data()); }); }, }; También cambie export default { db } para export { db } en el archivo de arranque.