Проблема в том, что вы звоните carrinho.get().then(...).catch(...)
, возвращает Обещание, которое хранится в produtosCarrinho
, но вы ничего не делаете с этим Обещанием.
Самое главное, так как это является частьюОбработчик намерений, вам необходимо вернуть это обещание Диспетчеру обработчиков.Это значит, что он знает, что нужно дождаться выполнения Обещания (то есть - он вызывает функцию в части then()
), прежде чем отправит ответ обратно пользователю.
Итак, выВы запускаете вызов базы данных, но ваша функция почти сразу же завершается и возвращается до завершения вызова, сообщая обработчику об отправке ответа пользователю.
В вашем случае это должно быть довольно просто исправить.Вместо того, чтобы хранить Обещание в переменной, которую вы никогда не используете, вы можете просто вернуть его примерно так:
return carrinho.get()
.then(doc => {...})
.catch(err => {...});