NodeJS Firebase ReferenceError:未在Object。<anonymous>中定义firebase

时间:2017-09-28 03:53:30

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

尝试部署index.js时,我在控制台中收到以下错误:

Error: Error occurred while parsing your function triggers.

ReferenceError: firebase is not defined
    at Object.<anonymous> (/private/var/folders/c3/fnyhf3gzz472z6fp_80gn/T/fbfn_12024O1uxG/index.js:10:1)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at /usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:18:11
    at Object.<anonymous> (/usr/local/lib/node_modules/firebase-tools/lib/triggerParser.js:32:3)

我在index.js中的代码如下:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

const serviceAccount = require('./DERPTYDERP-DERP123abc-firebase-adminsdk-1o2i3u4y5t.json');
firebase.initializeApp({
   credential: firebase.credential.cert(serviceAccount),
   databaseURL: "https://derptyderpt-123abc.firebaseio.com/"
});

firebase.database().ref().once('value',function(snapshot){
    let something = snapshot.val();

  });

2 个答案:

答案 0 :(得分:1)

您尝试更改此设置。如果您需要部署云功能

// The Cloud Functions for Firebase SDK to create Cloud Functions and setup triggers.
const functions = require('firebase-functions');

// The Firebase Admin SDK to access the Firebase Realtime Database. 
const admin = require('firebase-admin');
admin.initializeApp();
//Name Triggers testData 
exports.testData = functions.database.ref('/data/{pushId}').onWrite(event => 
{
  // Grab the current value of what was written to the Realtime Database.
  const original = event.data.val();

});
  

参考: Cloud Functions Trigger a database function

答案 1 :(得分:0)

只是为了弄清楚@aofdev的注释如何解决我的问题,我已经编写了一个名为functionA的函数的代码,它的触发路由为/users/quotes{quoteId},但是当我想创建一个新函数时将其复制下来功能B。更改了函数的主体实现和函数名称,而仍不更改触发路径。因此,现在我有两个函数具有相同的触发路径,并且实际上仅导出了一个函数(FunctionA),但是,当我部署并想要触发我的函数(FunctionA)进行测试时,由于执行了functionB而得到了ReferenceError即使已导出。 请检查以确保此函数已导出到index.js / ts文件级别,并且与函数项目中的另一个函数没有相同的触发路由。

希望这会有所帮助。