Quiero cambiar este código de Firebase V8 a Firebase V9. Intenté cambiar este código a v9 de varias maneras, pero desafortunadamente, todas fallaron:
useEffect(() => { const unsubscribe = db.collection("chats").onSnapshot((snapshot) => { setChats( snapshot.docs.map((doc)=>({ id:doc.id, data: doc.data(), })) ) ); return unsubscribe; }, [])La collection() y onSnapshot() son funciones de nivel superior en Firebase v9 SDK que se pueden importar directamente desde Firestore SDK. Intente refactorizar el código como se muestra a continuación:
import { collection, onSnapshot } from "firebase/firestore"; useEffect(() => { const colRef = collection(db, "chats") onSnapshot(colRef, (snapshot) => { setChats( snapshot.docs.map((doc) => ({ id: doc.id, data: doc.data(), })) ) }); return unsubscribe; }, [])Consulte también: Firestore: ¿Cuál es el patrón para agregar nuevos datos en Web v9?
La documentación tiene ejemplos de código escrito en sintaxis V8 y V9, por lo que puede cambiar las pestañas a la Versión 9 (Modular) y compararla con la sintaxis de la Versión 8 anterior (espacio de nombres) .