Esta es mi base de datos y los datos que quiero extraer:

Este es mi código:
const MatchScreen = ({route}) => { const id = route.params.id; const booking = getDoc(doc(db, 'bookings', id)) console.log(booking) return ( <View style = {{justifyContent: 'center', alignItems: 'center'}}> <Text>{id}</Text> </View> ) }Obtuve el valor de identificación de otra página y ese se muestra correctamente en la pantalla, pero cuando intento consolar la reserva de registro para ver si los valores están allí, esto es lo que obtengo:
Promise { "_U": 0, "_V": 0, "_W": null, "_X": null, }¿Qué estoy haciendo mal?
Cuando llama a getDoc , obtiene un Future<DocumentSnapshot> . Entonces, para obtener el valor de eso, debe usar then() o await para resolver el Future y luego llamar a data() para obtener los datos del documento.
const booking = getDoc(doc(db, 'bookings', id)) booking.then((doc) => { console.log(doc.data()); });Esto está bastante bien cubierto en la documentación sobre cómo obtener un documento , por lo que recomiendo pasar algún tiempo allí.
Obtener un documento de la colección de Firestore es una operación asincrónica y se requiere para ejecutar el código de efectos secundarios dentro useEffect .
const MatchScreen = ({ route }) => { const [booking, setBooking] = useState(null); const bookingId = route.params.id; function getBooking(bookingId) { getDoc(doc(db, "bookings", bookingId)).then((snapshot) => { if (snapshots.exists) { booking = snapshots.data(); setBooking(booking); } }); } useEffect(() => { getBooking(); }, []); console.log(" Booking :", booking); return ( <View style={{ justifyContent: "center", alignItems: "center" }}> <Text>{bookingId}</Text> </View> ); };```