Firebase的云功能:访问BigQuery无法正常工作

时间:2017-03-23 09:10:54

标签: node.js firebase google-bigquery google-cloud-functions

我需要从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在本地计算机上运行此脚本效果很好。

我哪里错了?

1 个答案:

答案 0 :(得分:0)

我有90%的肯定这意味着缺少一个依赖包,请检查package.json以确保在那里具有所有依赖项。删除本地的node_modules文件夹,然后npm install --production来重新安装所有内容,就像google尝试安装它一样。然后再次在本地运行。