我可以在本地成功运行我的代码,连接到同一个FireStore,但是当我将代码推送到发布服务器并到达同一个端点时,我会得到以下错误:
{ Error: Cannot find module 'grpc'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/app/current/node_modules/google-gax/build/src/grpc.js:46:19)
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 Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/var/app/current/node_modules/google-gax/build/src/index.js:33:16)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32) code: 'MODULE_NOT_FOUND' }
包装袋
dependencies
包括:
"firebase-admin": "^6.4.0",
"firebase-functions": "2.1.0",
在我的
index.js
:
var firestore = require("firebase-admin");
var serviceAccount = require("./firestore-config.json");
firestore.initializeApp({
credential: firestore.credential.cert(serviceAccount)
});
在我的
main.js
:
Parse.Cloud.define("sendPush", function (request, response) {
var db = firestore.firestore();
db.collection("myCollection")
.doc(request.params.id)
.get()
.then(docSnapshot => {
// code that never hits
}).catch(error => {
console.log("there was some error...");
response.error("Unable to get mute settings for group b");
assert.ok(true);
});
我的代码一部署就落入catch块中。知道这是怎么回事吗?谢谢
编辑:
我的本地实例和服务器都没有运行Docker、Vagrant或任何类型的虚拟机,NPM安装是在我的AWS计算机上作为部署过程的一部分完成的。