Estoy tratando de reconfigurar un código de Firebase v8 a firebase v9 en React... En una página de inicio de sesión/registro, quiero cambiar el estado en línea a verdadero.
No estoy seguro de si esta línea de código será muy diferente o literalmente igual con los nombres de variables actualizados. Esta puede ser una pregunta muy simple (con suerte). Sé que en v9 muchos de estos tipos de cosas se reestructuran con una declaración de importación de una función que ya está disponible en la biblioteca de firebase. No sé si esto es una de esas cosas... :/. ¡Gracias por tu tiempo! Avíseme con anticipación si necesito incluir más código para que tenga sentido...
antiguo (en funcionamiento) código v8:
variables:
centrándose en la línea justo debajo: "// configurar en línea para que sea verdadero" ...dentro de la página de inicio de sesión/registro:
try { // login const res = await projectAuth.signInWithEmailAndPassword(email, password) //set online to be true await projectFirestore.collection('users').doc(res.user.uid) .update({ online: true }) // dispatch login action dispatch({ type: 'LOGIN', payload: res.user }) if (!isCancelled) { setIsPending(false) setError(null) } } Mi código v9:
variables:
try { // login await signInWithEmailAndPassword(auth, email, password) .then((res) => { // dispatch login action dispatch({ type: 'LOGIN', payload: res.user }) //set online to be true await projectFirestore.collection('users').doc(res.user.uid) .update({ online: true }) if (!isCancelled) { setIsPending(false) setError(null) } })Hay una función de nivel superior updateDoc() para actualizar documentos:
import { updateDoc, doc } from "firebase/firestore"; const docRef = doc(db, "users", res.user.uid) await updateDoc(docRef, { online: true });