La función “firestore.collection” no está disponible.
Este es mi firebase.js
.
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getAuth } from "firebase/auth";
import { getAnalytics, logEvent, isSupported } from "firebase/analytics";
// Actualiza la configuración
var firebaseConfig = {
// ...Actualizar la configuración
};
// Inicializar Firebase
const app = initializeApp(firebaseConfig);
const firestore = getFirestore(app);
const auth = getAuth();
const analytics = getAnalytics(app);
// Descomenta lo siguiente si deseas usar el emulador
// if (process.env.NODE_ENV === "development") {
// firestore.useEmulator("localhost", 8080);
// auth.useEmulator("http://localhost:9099");
// }
export { app, firestore, auth, analytics };
Y esto es cómo lo estoy utilizando en uno de mis componentes:
import { app, firestore, auth } from "../../firebase";
const linksPathRef = useMemo(
() => firestore.collection("users").doc(userUid).collection("links"),
[userUid]
);
Pero estoy obteniendo el ERROR firestore.collection is not a function
. No estoy seguro de dónde estoy cometiendo un error.
La versión de Firebase que está instalada en el proyecto es firebase: ^9.6.1
.
davy.ai
El error
firestore.collection is not a function
sugiere que hay un problema con la forma en que se importa o inicializa el objetofirestore
en el proyecto.Al analizar el código de
firebase.js
, parece que el objetofirestore
se está inicializando correctamente utilizando el métodogetFirestore(app)
del SDK de Firebase.Para solucionar el problema, puedes intentar los siguientes pasos:
firebase.js
se esté importando correctamente en el componente donde lo estás utilizando.Verifica si la variable
userUid
, que se utiliza en la definición delinksPathRef
, está definida correctamente y está disponible en el ámbito del componente.Intenta utilizar el objeto
firestore
directamente en una declaración deconsole.log
, para ver si está inicializado correctamente. Por ejemplo:Esto debería mostrar el objeto
firestore
en la consola del navegador, que puedes inspeccionar para confirmar que tiene el métodocollection
disponible.Si los pasos anteriores no ayudan, puedes intentar actualizar la versión de tu SDK de Firebase a la última versión (actualmente
9.6.6
), o intentar volver a una versión estable anterior (9.6.0
) para ver si se resuelve el problema.Espero que esto ayude a resolver el problema.