我知道别人有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
我是否还需要检查什么?任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
已使您的代码可以在Cloud Functions for Firebase中运行。您不能简单地在本地Node.js中运行它,因为它取决于那里不可用的功能。
要在Cloud Functions中运行代码,您必须deploy it to Google's servers和firebase deploy
command。
要访问test the functions locally,请使用firebase serve
命令。
答案 1 :(得分:0)
在包含您的javascript的HTML文件中添加以下导入行:
<script src="/__/firebase/<version>/firebase-functions.js"></script>