【发布时间】:2017-04-19 05:03:42
【问题描述】:
我在尝试将 firebase 节点应用程序部署到虚拟专用服务器时遇到此错误消息:
/home/.../Backend/node_modules/firebase-admin/lib/firebase-namespace.js:195
this.Promise = Promise;
^
ReferenceError: Promise is not defined
at new FirebaseNamespace (/home/.../Backend/node_modules/firebase-admin/lib/firebase-namespace.js:195:24)
at Object.<anonymous> (/home/.../Backend/node_modules/firebase-admin/lib/default-namespace.js:5:21)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/.../Backend/node_modules/firebase-admin/lib/index.js:4:16)
at Module._compile (module.js:456:26)
在我的本地环境中,这个节点应用程序运行没有任何问题。两种环境都具有相同的节点、npm 和“firebase-admin”模块版本。
所以,我按照here 的建议修改了虚拟服务器上的“firebase-admin”模块文件。通过添加
var Promise = require('es6-promise').Promise;
手动到一些模块源文件,我可以摆脱错误信息。之后,无法从 firebase 数据库中读取任何内容。
我的代码部分
firebaseDatabase.ref("...").once('value').then(function(snapshot){
....
});
它在我的本地环境中毫无问题地读取 firebase 的内容,永远不会在虚拟服务器上调用它的“then”。
我做错了什么?任何建议表示赞赏。
【问题讨论】:
-
npm 版本:3.10.0 ;节点版本:7.1.0; v8 版本:5.4.500.36; firebase-admin 版本:4.0.3;