TypeError:firebase.functions不是函数

时间:2019-04-27 17:38:19

标签: node.js firebase

我知道别人有posted this question before,但我相信我的声明正确,但仍然行不通:

运行sendEmail.js:

node sendEmail.js

在sendEmail.js内部:

"use strict";
// Initialize Function Caller App
const firebase = require("firebase");
// Required for side-effects
require("firebase/functions");

var config = {
  apiKey: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  authDomain: "my-project-id.firebaseapp.com",
  databaseURL: "https://my-project-id.firebaseio.com",
  projectId: "my-project-id",
  storageBucket: "my-project-id.appspot.com",
  messagingSenderId: "xxxxxxxxxx"
};
firebase.initializeApp(config);

var functions = firebase.functions(); // Error here: TypeError: firebase.functions is not a function

我从Firebase Documentation获得了以上示例。它适用于我的其他项目,但不适用于当前项目。我还在sendEmail.js文件夹中运行了以下命令:

npm install firebase@5.10.1 --save

在我的Firebase项目根文件夹中,我的package.json文件也具有firebase-functions依赖性:

"dependencies": {
    "firebase": "^5.10.0",
    "firebase-admin": "^7.3.0",
    "firebase-functions": "^2.3.0",
    "nodemailer": "^6.1.0"
  },

但是,仅供参考,我的sendEmail.js在以下文件夹中:

project-root\testing\sendEmail.js
project-root\testing\node_modules\@firebase
project-root\testing\node_modules\@firebase\functions

我仍然收到此错误:

var functions = firebase.functions();
                         ^
TypeError: firebase.functions is not a function
    at Object.<anonymous> (d:\project-root\testing\sendEmail.js:17:26)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
    at startup (bootstrap_node.js:191:16)
    at bootstrap_node.js:612:3

我是否还需要检查什么?任何帮助将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:0)

已使您的代码可以在Cloud Functions for Firebase中运行。您不能简单地在本地Node.js中运行它,因为它取决于那里不可用的功能。

要在Cloud Functions中运行代码,您必须deploy it to Google's serversfirebase deploy command

要访问test the functions locally,请使用firebase serve命令。

答案 1 :(得分:0)

在包含您的javascript的HTML文件中添加以下导入行:

<script src="/__/firebase/<version>/firebase-functions.js"></script>