Quiero obtener los datos de un solo documento por ID seleccionado. Probé con la función "child" y "orderByChild", pero parece que no funcionó con el SDK web 9. ¿Podría ayudarme con la consulta de formato nuevo de la versión web 9? A continuación se muestra mi código en la base de datos de la tabla:
<Link to={`/view/${id}`}> {id.data.dateCreate} </Link>Y el código en la página "Ver":
const [user, setUser] = useState({}); const { id } = useParams(); useEffect(() => { db .orderByChild(`reports/${id}`) .get() .then((snapshot) => { if (snapshot.exists()) { setUser({ ...snapshot.val() }); } else { setUser({}); } }); }, [id]);¡Muchas gracias por tu ayuda!
Puede usar la función getDoc() para obtener un solo documento como se muestra a continuación:
import { doc, getDoc } from "firebase/firestore"; useEffect(() => { const fetchDocById = async () => { // Create DocumentReference const docRef = doc(db, "reports", id) // db = getFirestore() // Fetch document const docSnap = await getDoc(docRef) if (snapshot.exists()) { setUser({ ...snapshot.val() }); } else { setUser({}); } } fetchDocById() }, [id]);Consulte también: Firestore: ¿Cuál es el patrón para agregar nuevos datos en Web v9?