Hola, estoy tratando de configurar la aplicación reaccionar con firebase y usar firestore.
"firebase": "^9.1.3"Seguí las instrucciones dadas en los documentos oficiales.
Aquí está mi archivo congig.js.
import { initializeApp } from 'firebase/app'; import { getFirestore } from 'firebase/firestore'; const firebaseConfig = { apiKey: '****', authDomain: '*****', projectId: '*****', storageBucket: '*****', messagingSenderId: '****', appId: '*****', }; const app = initializeApp(firebaseConfig); export const db = getFirestore(app);Estoy seguro de que esto se inicializa.
Cuando lo exporto y lo uso en otro archivo. collection está atenuada en el código vs, lo que significa que no estoy usando la importación.
servicio de base de datos.js
import { db } from './config'; import { collection, doc } from 'firebase/firestore'; export const getChapters = (scanId) => { db.collection('somecollection') .doc(scanId) .get() .then((doc) => { if (doc.exists) { console.log('Document data:', doc.data()); } else { // doc.data() will be undefined in this case console.log('No such document!'); } }) .catch((error) => { console.log('Error getting document:', error); }); };Error: TypeError: config__WEBPACK_IMPORTED_MODULE_0 _.db.collection no es una función
He probado con las versiones compat y lite. Obteniendo el mismo problema.
Esta es la sintaxis v8/compat:
db.collection('somecollection') .doc(scanId) .get() .then((doc) => {En la sintaxis v9/modular, el equivalente es:
getDoc(doc(db, 'somecollection', scanId)) .then((doc) => {Para convertir este tipo de cosas, me resulta más fácil tener a mano la documentación de Firebase y la guía de actualización .
Firebase ha cambiado su API a una nueva sintaxis modular en la versión 9. Está utilizando la sintaxis antigua de la versión 8. Puede leer más sobre esto y encontrar instrucciones sobre cómo actualizar su código aquí: https://firebase.google.com/docs/web /actualización-modular
Además, en todas partes de la documentación de Firebase, ahora tienen 2 ejemplos separados: uno para la sintaxis antigua, uno para la sintaxis modular nueva: https://firebase.google.com/docs/firestore/query-data/get-data