Я установил функцию pubsub с функциями firebase, чтобы время от времени выполнять некоторые операции в Firestore.Для этого мне нужно сделать запрос в сторонний API для получения обновленных данных, а затем я хочу вставить эти данные в правильный сбор и документ в Firestore.
const request_promise = require('request-promise')
exports.scheduledFunction = functions.pubsub.schedule('every 2 minutes').onRun((context) => {
console.log('This will be called every 2 minutes')
var username = ''
var password = ''
var options = {
url: 'path.to.api.com',
auth: {
user: username,
password: password
},
json: true
}
request_promise(options)
.then(function (product) {
console.log(product.product_id)
db.collection('products').doc(product.product_id).set(product)
.then(() => {
console.log('Document successfully written')
})
.catch(error => {
console.log('Error writing product to firestore', error)
})
})
.catch(function (err) {
console.log('Failed to get product', error)
})
});
ВПриведенный выше код, если я закомментирую вызов для добавления данных в Firestore, правильно выводит product_id на консоль, поэтому я знаю, что запрос работает, но с оставленным в нем я получаю «Функция вернула неопределенное, ожидаемое обещание или значение».