繁体   English   中英

我无法从我的 node.js firebase 函数 index.js 文件中验证大查询

[英]Im failing to authenticate Big query from my node.js firebase functions index.js file

我在我的 firebase 函数 index.js 文件中使用了大查询 API,但是在初始化大查询实例时我不断收到内部服务器错误,我的第一次尝试是将我的服务帐户密钥文件包含在函数目录中,我的代码是以下

const functions = require("firebase-functions");
const express = require('express');
const cors = require('cors')({ origin: true });

const app = express();
app.use(cors);
app.use(express.json());



exports.api = functions.https.onRequest(app);


app.post('/create_table', (req, res) => {

  'use strict';

  const { BigQuery } = require('@google-cloud/bigquery');
  const options = {
    keyFilename: 'gamelot-c057c-837d4660ae39.json',
    projectId: 'gamelot-c057c',
  };
  const bigquery = new BigQuery(options);

这是导致错误的行

const { BigQuery } = require('@google-cloud/bigquery');
      const options = {
        keyFilename: 'gamelot-c057c-837d4660ae39.json',
        projectId: 'gamelot-c057c',
      };
      const bigquery = new BigQuery(options);

我该如何解决这个问题?

如果您使用 Cloud Functions for Firebase(即通过 Firebase CLI 部署的 Cloud Functions),则在创建 BigQuery 客户端时不应传递任何选项。 只需执行以下操作:

const { BigQuery } = require('@google-cloud/bigquery');
const bigquery = new BigQuery();

事实上,Cloud Functions for Firebase 使用 App Engine 默认服务帐户,即{project-id}@appspot.gserviceaccount.com ,它具有 Editor角色,默认情况下包含与 BigQuery 交互的权限。

您可以在此处检查“编辑器”“基本”角色是否具有所需的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM