我需要从Firebase云功能连接到BigQuery并存储一些数据。 BigQuery位于另一个Google项目中,所以我想使用带主键的.json文件。 不幸的是,我的解决方案无效。
我有以下代码:
'use strict';
const functions = require('firebase-functions');
const bigquery = require('@google-cloud/bigquery');
const path = require("path");
exports.testBigQuery = functions.https.onRequest((request, response) => {
var bigqueryClient = bigquery({
projectId: '(project name)',
keyFilename: path.join(__dirname,'bigQuery.json')
});
const dataset = bigqueryClient.dataset("mat");
const table = dataset.table("meraki_data");
function insertHandler(err, apiResponse) {
if (err) {
response.send({err : err, response : apiResponse});
} else {
response.send({err : "No error", response : apiResponse});
}
}
table.insert({
ap_mac: "TESTsfsadfads",
rssi: 1,
is_associated: false,
client_mac: "TEST"
}, insertHandler);
});
在函数调用之后(我使用Postman)我有以下响应:
{
"err": {
"code": "MODULE_NOT_FOUND"
}
}
使用node.js在本地计算机上运行此脚本效果很好。
我哪里错了?
答案 0 :(得分:0)
我有90%的肯定这意味着缺少一个依赖包,请检查package.json以确保在那里具有所有依赖项。删除本地的node_modules文件夹,然后npm install --production
来重新安装所有内容,就像google尝试安装它一样。然后再次在本地运行。