Я пытаюсь получить заказы из моей базы данных, где свойство электронной почты (которое находится внутри объекта покупателя) равно электронной почте пользователя; но я продолжаю получать пустой массив без заказов.
const ProfileContainer = () => {
let { user } = useContext(AppContext)
const [orders, setOrders] = useState([])
const [loading, setLoading] = useState(true)
useEffect(() => {
console.info(orders)
}, [orders])
useEffect(() => {
const db = getFirestore()
const ordersRef = query(collection(db, 'orders'), where(('buyer', 'email'), '==', user.email))
getDocs(ordersRef)
.then(res => {
setOrders(res.docs.map((order) => ({ ...order.data() })))
})
.finally(() => setLoading(false))
}, [user])
return (
<>
{loading ?
<Spinner />
:
<Profile
orders = {orders}
user = {user}
/>
}
</>
)
}
Используйте запись через точку, чтобы построить путь к полю гнезда.
const ordersRef = query(
collection(db, 'orders'),
where('buyer.email', '==', user.email)
)
Смотрите также
Если у вас возникла новая проблема, напишите новый пост, чтобы объяснить, что работает не так, как вы ожидаете.
Спасибо за Ваш ответ! Я пробовал это, но теперь отображается эта ошибка: «Неперехваченная ошибка: объекты недействительны в качестве дочернего элемента React (найдено: объект с ключами {секунды, наносекунды}). Если вы хотели отобразить коллекцию дочерних элементов, используйте вместо этого массив ."