Я пытаюсь написать облачную функцию http-запроса для экспорта индексов из Algolia и сохранения их в Firebase Storage, но обнаружилось указанное выше сообщение об ошибке, например:
TypeError: index.browseObjects is not функция
Код экспорта по существу взят из примера кода на Algolia здесь . Мой код как таковой:
//functions/index.js
exports.exportIndex = require('./tests/export_index.f')
//export_index.f.js
const exporter = require('../algolia/exporter')
module.exports = functions.region('asia-northeast1')
.https
.onRequest((req, res) => {
return exporter.exportIndex()
.then(() => {
res.end()
})
});
//exporter.js
const client = algoliasearch(appId, apiKey)
const index = client.initIndex('the_index')
function exportIndex() {
let hits = []
return index.browseObjects({
batch: objects => (hits = hits.concat(objects))
})
.then(() => {
console.log('Finished!');
console.log('We got %d hits', hits.length);
let json = JSON.stringify(hits, null, 2)
let path = `exports/algolia/the_index/${new Date().toISOString()}/index.json`
return firebase.saveToStorage(json, path) // file.save() method
})
}
module.exports = {
exportIndex
}
Я пробовал подобный набор кода в автономном режиме, запустив node exporter.js
, и функция exportIndex()
работает. Однако при развертывании в облачной функции выдает ошибку. Я проверил, что мои appId
и apiKeys
верны, и что я включил план Blaze.
Любой совет?