Я пытаюсь использовать библиотеку '@ google-cloud / bigquery' для запроса BigQuery из функции Google Cloud. Когда обещание возвращается, все, что я получаю, это массив с другим пустым массивом внутри, хотя, когда я выполняю тот же запрос из консоли большого запроса, я получаю непустой ответ.
Я пытался использовать асинхронную функцию вместо обещания, но это не удалось. Я также дал моей учетной записи службы права «BigQuery Admin» и «Редактор», но это тоже не сработало.
Я знаю, что API работает с Big Query. Когда я пытался создать новый набор данных из моей облачной функции, этот вызов работал просто отлично, но по какой-то причине я не могу получить результаты запроса из BQ.
function warningAndPreventionIntent(agent) {
let userCountry = agent.parameters['geo-country'];
console.log(String(userCountry[0]));
const gotCountry = userCountry.length > 0;
if(gotCountry) {
agent.add('Im looking into your trip');
const OPTIONS = {
query: 'SELECT disease.name FROM `projectId.dataset.table`, unnest(disease) disease WHERE country = @country',
timeoutMs: 10000,
useLegacySql: false,
params: {country: userCountry[0]}
};
return bigquery
.query(OPTIONS)
.then(results => {
console.log(JSON.stringify(results[0]))
const ROWS = results[0];
let diseaseList = [];
for(var row of ROWS) {
diseaseList.push(row.name);
console.log(diseaseList);
}
return true;
})
.catch(err => {
console.error('ERROR:', err);
});
}
}
Я должен получить объект JSON result
со значениями, но я получаю только массив с пустым массивом [[]]